我不知道该怎么做?我要添加逗号数字,结果当然总是一个逗号后面的数字太多的数字。任何人?
Answers:
编辑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(roudedString); // 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.555 Math.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
0.6666.toFixed(3)
变成0.666
而不是0.667
。@Andrei似乎具有正确舍入的正确解决方案。
toFixed()
完美的作品:0.6666.toFixed(3) # => 0.667
。我将其添加到您的答案中。
先前的答案忘记再次将输出键入为数字。有多种方法可以执行此操作,具体取决于您的口味。
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
尽管我们在这里有很多答案,并且提供了许多有用的建议,但是每个答案仍然缺少一些步骤。
因此,这是包装成小函数的完整解决方案:
function roundToTwoDigitsAfterComma(floatNumber) {
return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2));
}
以防万一您对这是如何工作感兴趣的:
toFixed(2)
逗号后保留两位数字,并丢弃其他无用的部分parseFloat()
函数作为
toFixed(2)
返回字符串来将其转换回float注意:如果由于使用货币值而在逗号后保留最后两位数字,并且进行财务计算时请记住,这不是一个好主意,而是最好使用整数值。
使用下面的代码。
alert(+(Math.round(number + "e+2") + "e-2"));
我用这个:
function round(value, precision) {
if(precision == 0)
return Math.round(value);
exp = 1;
for(i=0;i<precision;i++)
exp *= 10;
return Math.round(value*exp)/exp;
}