15

我想使用JavaScript.

2 和 0.15 的乘积是 0.3,但 3 和 0.15 的乘积是 0.44999999999999996。我想得到 0.45 这样的结果。我该怎么做JavaScript?

4

2 回答 2

17

这是一个舍入错误。您可能希望将您的号码四舍五入为固定位数,如下所示:

parseFloat((your_number).toFixed(2));
于 2013-05-17T11:45:07.237 回答
9

不幸的是,这发生在任何使用浮点运算的语言中。当浮点运算被编码成二进制,执行运算并从二进制解码以以您期望的形式报告答案时,这是一种人工制品。

根据您想要对输出执行的操作,您可以调用类似 round() 的函数来舍入到小数位数或使用称为容差的(小)数字将输出与值进行比较。例如,如果两个数字的绝对差小于此容差,则认为它们相等。

于 2013-05-17T11:46:27.480 回答