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

Ste*_*rgh 69 javascript math rounding

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

And*_*rei 95

  • 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);
Run Code Online (Sandbox Code Playgroud)

  • 您忘记更改舍入数学,如下所示:Math.round(123.12124 * 10000)/10000).toFixed(4)。这是如果您想四舍五入到小数点后第四位。 (2认同)

Jac*_*kin 86

编辑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)
Run Code Online (Sandbox Code Playgroud)

它的结果是42.0054321到42.01

它的回合率为0.005到0.01

它舍入-0.005到-0.01(所以在.5边界处的舍入时绝对值增加)

jsFiddle例子

  • -1; 你的例子将"0.5"变成"1.00". (54认同)
  • 如果您想要实际舍入一个数字,例如0.007到两位小数,则此示例不起作用.结果是:Math.round(0.007) - > 0.000然后到固定(2) - > 0.00.实际的舍入过程应该呈现0.01. (11认同)
  • downvote:answer是不正确的,因为Math.round()对数字进行舍入,从而删除所有小数.所有toFixed(2)然后添加两个尾随零.只需number.toFixed(2)即可. (9认同)
  • toFixed是我正在寻找的,解决了!谢谢! (6认同)
  • 应该做点什么,因为这个答案是错误的,其他人可能不会在盲目使用接受的答案之前阅读评论。 (2认同)

小智 53

这对我有用:

var new_number = float.toFixed(2);
Run Code Online (Sandbox Code Playgroud)

例:

var my_float = 0.6666

my_float.toFixed(3) # => 0.667
Run Code Online (Sandbox Code Playgroud)

  • 最短,最好.这应该是公认的答案. (3认同)

Rom*_*ory 11

以前的答案忘记再次输出数字作为数字.根据您的口味,有几种方法可以做到这一点.

+my_float.toFixed(2)

Number(my_float.toFixed(2))

parseFloat(my_float.toFixed(2))
Run Code Online (Sandbox Code Playgroud)


Tu4*_*n3r 6

这不是真正的 CPU 友好,但是:

Math.round(number*100)/100
Run Code Online (Sandbox Code Playgroud)

按预期工作。