我不知道怎么做?我正在添加逗号,结果当然总是一个数字,逗号后面的数字太多了。任何人吗?
答案 0 :(得分:90)
toFixed()
- 方法将数字转换为字符串,保持指定的小数位数。它实际上不会对数字进行舍入,而是截断数字。Math.round(n)
- 将数字四舍五入到最接近的整数。因此转向:0.5 - > 1; 0.05 - > 0
所以如果你想要舍入,比如说数字0.55555,只到第二个小数位;你可以做到以下(这是一步一步的概念):
0.55555 * 100
= 55.555 Math.Round(55.555)
- > 56.000 56.000 / 100
= 0.56000 (0.56000).toFixed(2)
- > 0.56 这是代码:
(Math.round(number * 100)/100).toFixed(2);
答案 1 :(得分:77)
编辑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(因此在.5边界处舍入时绝对值会增加)
答案 2 :(得分:52)
这对我有用:
var new_number = float.toFixed(2);
示例:
var my_float = 0.6666
my_float.toFixed(3) # => 0.667
答案 3 :(得分:10)
以前的答案忘记再次输出数字作为数字。根据您的喜好,有几种方法可以做到这一点。
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
答案 4 :(得分:3)
这不是真正的CPU友好,但是:
Math.round(number*100)/100
按预期工作。
答案 5 :(得分:3)
虽然我们在这里有许多答案并提供了大量有用的建议,但每个人仍然会错过一些步骤 所以这是一个包含在小函数中的完整解决方案:
com.twilio.exception.ApiException:
The requested resource /2010-04-01/Accounts/ACbfadc94adf90fd6606222566aab3ef4/Messages.json was not found
以防万一你对此如何运作感兴趣:
function roundToTwoDigitsAfterComma(floatNumber) {
return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2));
}
保留2位数
逗号并抛出其他无用的部分toFixed(2)
函数将其转换回float
parseFloat()
返回字符串注意:如果由于使用货币值而在逗号后保留最后2位数,并且进行财务计算请记住它{{3并且你最好使用整数值。
答案 6 :(得分:1)
使用以下代码。
alert(+(Math.round(number + "e+2") + "e-2"));
答案 7 :(得分:0)
我用这个:
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;
}
答案 8 :(得分:0)
以上所有建议似乎都不适用于所有数字(包括负数)
0.075 => 0.08
-0.075 => -0.08
0.005 => 0.01
-0.005 => -0.01
Math.sign(num) * (Math.round((Math.abs(num) + Number.EPSILON) * 1e2) / 1e2);