如何正确乘以和除以角度的数字

How to properly multiply and divide numbers in angular?

本文关键字:数字 何正确      更新时间:2023-09-26

我在乘数方面有问题。我有来自 https://github.com/assisrafael/angular-input-masks 的带有 ui-money-mask 指令的数字类型字段,我可以在其中键入小数点后 2 位的数字。但是我想存储那些没有分隔符的数字,我的意思是:

123.12 -> 12312

1111.11 -> 111111等

问题是,当我尝试将它们乘以 100 以删除分隔符时,有时会得到错误的结果,例如:1111.11 * 100 = 111110.999999999999 但我想要111111。

我该如何解决这个问题?

您可以使用

toFixed(0)

像这样尝试

parseFloat("111110.99999999999").toFixed(0)

这是一个经典的浮点运算问题。在您的情况下,我认为最简单的解决方案就是四舍五入:

Math.round(1111.11 * 100)

它的工作方式与toFixed(0)相同,只是它不返回字符串。

你可以通过使用toFixed或Math.round来做到这一点。

var result = parseInt(parseFloat(1111.11).toFixed(0));

注意:toFixed 返回字符串需要再次将其转换为整数

var result = Math.round(1111.11 * 100)

你可以简单地使用

Math.round(1111.11 * 100)