如果你将一个像1.0012
这样的浮点数转换成一个整数,那么它会变成1
吗?
那为什么我写的时候:
(int)(14/13-0.001)
而不是1.07592
〜成为1
它变为0
?
(用Eclipse编译的Java)。
答案 0 :(得分:12)
它会截断。对于1.0012,它只删除小数点右边的部分。
在示例中
(int)(14/13-0.001)
14/13将为1然后它将被转换为double,1.0-0.001 = 0.999,并且在截断后它变为0。
答案 1 :(得分:8)
14 / 13
是整数除法。它的值是1。
1 - 0.01
因此低于1.
将其转换为int因此产生0。
改为使用14.0 / 13 - 0.001
或14d / 13 - 0.001
。