我不知道该怎么做?我正在添加逗号数字,结果当然总是一个逗号后有太多数字的数字。任何人?
逗号后将数字四舍五入为 2 位
IT技术
javascript
math
rounding
2021-03-06 18:50:46
6个回答
编辑 2:
像这样使用Number
对象的toFixed
方法:
var num = Number(0.005) // The Number() only visualizes the type and is not needed
var roundedString = num.toFixed(2);
var rounded = Number(roundedString); // toFixed() returns a string (often suitable for printing already)
它将 42.0054321 舍入到 42.01
它舍入 0.005 到 0.01
它将 -0.005 舍入到 -0.01(因此绝对值在 0.5 边界处舍入时增加)
更新:请记住,在 2010 年最初编写答案时,波纹管函数 toFixed() 的工作方式略有不同。toFixed() 现在似乎做了一些四舍五入,但不是以严格的数学方式。所以要小心。做你的测试......正如数学家所期望的那样,下面描述的方法可以很好地进行四舍五入。
toFixed()
- 方法将数字转换为字符串,保留指定的小数位数。它实际上并不对数字进行四舍五入,而是截断了数字。Math.round(n)
- 将数字四舍五入到最接近的整数。从而转向:
0.5 -> 1; 0.05 -> 0
因此,如果您想四舍五入,请说数字 0.55555,只保留小数点后第二位;您可以执行以下操作(这是分步概念):
0.55555 * 100
= 55.555Math.Round(55.555)
-> 56.00056.000 / 100
= 0.56000(0.56000).toFixed(2)
-> 0.56
这是代码:
(Math.round(number * 100)/100).toFixed(2);
这对我有用:
var new_number = float.toFixed(2);
例子:
var my_float = 0.6666
my_float.toFixed(3) # => 0.667
以前的答案忘记再次将输出输入为数字。有几种方法可以做到这一点,这取决于您的口味。
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
这不是真正的 CPU 友好,但是:
Math.round(number*100)/100
按预期工作。