如何围绕一个浮点数,使小数点后只有两个尾随数字?

Kal*_*a J 0 javascript floating-point rounding significant-digits

我有一个像137.57667565656这样的浮点数,但我想将它舍入到小数点后面只有两个尾随数字,就像新的浮点数一样是137.58.

到目前为止我试过这个:

(Math.round((value*100)/100)).toFixed(2).toString();
Run Code Online (Sandbox Code Playgroud)

但不幸的是,它将我的价值调整为137.00.它将小数位添加为零,为什么?

我怎样才能实现上述目标?

Rob*_*obG 6

你有什么期望?

(value*100)/100
Run Code Online (Sandbox Code Playgroud)

只需返回值的原始,所以

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

与以下内容相同:

Math.round(value)
Run Code Online (Sandbox Code Playgroud)

然后你有:

Math.round(value).toFixed(2).toString();
Run Code Online (Sandbox Code Playgroud)

所以将四舍五入为整数,toFixed将添加两个小数位并返回一个字符串,因此toString部分是多余的.如果您希望将四舍五入到小数点后四位,则:

value.toFixed(4)
Run Code Online (Sandbox Code Playgroud)

会做的工作:

var x = 137.57667565656;

console.log(x.toFixed(4)); // 137.5767
Run Code Online (Sandbox Code Playgroud)

如果要将其舍入到2个位置但将其显示为4,则:

Number(x.toFixed(2)).toFixed(4)  // 137.5800
Run Code Online (Sandbox Code Playgroud)