当我尝试将3(整数类型)乘以112.1(双精度)时,我得到的结果包含许多小数点。
Integer a=3;
Double b=112.1;
Double result=a*b = 336.29999999999995
但是当我们将2(整数)乘以112.1(双精度)时,小数点是如此之小。
Integer a=2;
Double b=112.1;
Double result=a*b = 224.2
有人能告诉我这种奇怪行为的原因吗?
答案 0 :(得分:0)
您无法存储分数的实际十进制表示。
这是因为计算机使用二进制来保存任何值,包括小数值。
因此,实际保存的内容与您要存储的内容之间存在一些差异。