如果我表演
97346822*3f, result is 2.9204048E8,
然而,
97346822*3.0 gives me 2.92040466E8.
请解释一下。
发布于 2013-07-26 02:24:46
数字3.0
是double
值的literal representation (相当于3.0d
),而3.0f
是float
值。不同的精度解释了为什么会得到不同的结果- double
使用64位存储,float
使用32位存储。
发布于 2013-07-26 22:28:20
这些都是与this question相关的发现和我对此的回答。
虽然3.0和3f在输入浮点值时具有相同的值,但实际值用作浮点运算的工作内存。作为乘法的一部分的内部值不适合浮点值本身,并被修改,从而导致获得的结果之间的差异为14.0。
https://stackoverflow.com/questions/17865846
复制相似问题