常德龙茗茶业有限公司:Java类型转化问题(double到int)

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 15:49:03
一段程序求一浮点数的小数部分.
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.正常!为什么会有这种情况呢?

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

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

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