我的Java代码有奇怪的问题。为什么每个低于0.4f的数字乘以0.0025f都会给我错误的结果。
正确的结果:
0.4f * 0.0025f = 0.001f
错误的结果:
0.399999f * 0.0025f = 9.999975E-4
instead of 0.000999998f
0.33333f * 0.0025f = 8.33325E-4
instead of 0.000833325f
0.11111f * 0.0025f = 2.77775E-4
instead of 0.000277775f
答案 0 :(得分:3)
您如何打印结果。您也许应该看一下。听起来您好像不懂指数表示法。
9.999975E-4 == 0.000999975
E-4只是意味着将小数点后四位向右移。
此外,您做错了自己的数学运算。您有一个以9结尾的数字乘以以5结尾的数字,这意味着答案将以5结尾(毕竟9 x 5为45)。因此不会是0.000999998。您可以从四舍五入的东西中得到答案,也许是计算器无法完全显示出来。
您没有数学问题。您有显示问题,并非如此。是因为您不了解显示内容。
也许会查找printf方法,并使用格式字符串,该格式字符串在小数点后的数据空间很大。