逗号后将数字舍入为2位数

时间:2010-11-04 16:09:40

标签: javascript math rounding

我不知道怎么做?我正在添加逗号,结果当然总是一个数字,逗号后面的数字太多了。任何人吗?

9 个答案:

答案 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边界处舍入时绝对值会增加)

jsFiddle example

答案 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

以防万一你对此如何运作感兴趣:

  1. 多次100,然后进行舍入以保持2位数的精度 逗号后
  2. 再分为100并使用function roundToTwoDigitsAfterComma(floatNumber) { return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2)); } 保留2位数 逗号并抛出其他无用的部分
  3. 使用toFixed(2)函数将其转换回float parseFloat()返回字符串
  4. 注意:如果由于使用货币值而在逗号后保留最后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)

以上所有建议似乎都不适用于所有数字(包括负数)

  1. 0.075 => 0.08

  2. -0.075 => -0.08

  3. 0.005 => 0.01

  4. -0.005 => -0.01

    Math.sign(num) * (Math.round((Math.abs(num) + Number.EPSILON) * 1e2) / 1e2);