在JavaScript中乘法int和float(double)

Afs*_*dli 11 javascript

我想用乘法进行乘法运算JavaScript.

乘法2和0.15是0.3但是3和0.15是0.44999999999999996.我想得到0.45如结果.我怎么能这样做JavaScript?

Sim*_*n M 15

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

parseFloat((your_number).toFixed(2));
Run Code Online (Sandbox Code Playgroud)

  • 这很好,但它产生了一个字符串FWIW! (2认同)
  • @mplungjan是的,我知道,OP可能不会. (2认同)
  • @limelights你有一个好点,我忘了返回类型......我将用`parseFloat更新答案 (2认同)

Bat*_*eba 5

不幸的是,这在使用浮点运算的任何语言中都会发生。当浮点运算被编码为二进制,已执行的操作以及从二进制进行解码以以您期望的形式报告答案时,就会出现此问题。

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