【发布时间】:2016-12-31 04:39:30
【问题描述】:
var randomNumber = (Math.random()*3 + 3.5); randomNumber;
alert(randomNumber)
这段代码返回一个类似的数字
4.589729345235789
我需要它返回
4.5
所以需要它来删除除第一个之外的小数点后的所有数字,谁能告诉我该怎么做?
【问题讨论】:
标签: javascript
var randomNumber = (Math.random()*3 + 3.5); randomNumber;
alert(randomNumber)
这段代码返回一个类似的数字
4.589729345235789
我需要它返回
4.5
所以需要它来删除除第一个之外的小数点后的所有数字,谁能告诉我该怎么做?
【问题讨论】:
标签: javascript
您将Number.prototype.toPrecision() 与参数2 一起使用,Number.prototype.toFixed() 与参数1 一起使用。
+randomNumber.toPrecision(2);
或者,您可以将String.prototype.slice() 与参数0、3 一起使用
+String(randomNumber).slice(0, 3);
【讨论】:
如果您需要设置数字的小数位数,可以使用toFixed(X),其中 X 是您想要的小数位数。
例如,
4.589729345235789.toFixed(1); 将导致4.6。
请记住,这会将数字转换为字符串。
如果您需要绝对准确度,而 4.6 对您来说还不够好,请参阅 this Stackoverflow post,这是一种更“准确”的方法:
var with2Decimals = num.toString().match(/^-?\d+(?:\.\d{0,2})?/)[0]
注意其中的{0,2},这是范围。您可以根据自己的情况将其更改为 {0,1}。
【讨论】: