整数与双倍乘法给出了非常奇怪的输出

时间:2016-12-08 05:14:38

标签: java groovy

当我尝试将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

有人能告诉我这种奇怪行为的原因吗?

1 个答案:

答案 0 :(得分:0)

您无法存储分数的实际十进制表示。

这是因为计算机使用二进制来保存任何值,包括小数值。

因此,实际保存的内容与您要存储的内容之间存在一些差异。