Java类型转化问题(double到int)

来源:百度知道 编辑:UC知道 时间:2024/05/03 20:29:01
一段程序求一浮点数的小数部分.
double d=0.0;
int i=(int)d;
小数部分即为d-i;(只考虑正数)

当d的值的小数部分小于0.5时,比如1.4,
d-i的值却为0.399999999.
当d的小数部分大于0.5时候,比如1.6.
输出0.6.正常!为什么会有这种情况呢?

这个属于机器内码精度问题,详细资料你可以找“计算机如何表示浮点数”的内容,总的来说就是计算机无法精确表示浮点数。

我倒没注意过这个问题,真的耶。

上网查了好多资料都是说先化成字符串再处理