JavaScript操作数字



我希望我能正确解释这一点,并为任何误解道歉。

我想更改一些小数点后2位的数字如下:

18.40 should become-> 18.40
18.41 should become-> 18.41
18.42 should become-> 18.42
18.43 should become-> 18.43
18.44 should become-> 18.44
18.45 should become-> 18.5
18.46 should become-> 18.5
18.46 should become-> 18.5
18.46 should become-> 18.5
18.46 should become-> 18.5

基本上,我想根据数字的最后一位来更改数字。如果最后一位数字(小数点后两位的第二位数字(是5或大于小数点后二位的第一位数字,则数字应更改为下一个递增数字。

例如18.46.6大于5,所以6之前的4应该变成5。所以这个数字将是18.5

我希望现在已经清楚了。

谢谢。基本上

您可以去掉小数部分,四舍五入,然后将其添加回整数部分:

const values = [18.40, 18.42, 18.45, 18.48]
const formatted = values.map(roundIt)

function roundIt(v){
let int = v|0
let dec = v - int
dec = Math.round( Number.parseFloat(dec).toFixed(2) * 10 ) / 10
return Number.parseFloat(dec < .5 ? v : int+dec).toFixed(2)
}
console.log(formatted)

您可以通过查找最后一位来转换它。

const
convert = v => (v * 100).toFixed(0) % 10 < 5 ? v : v.toFixed(1),
data = [[18.40, 18.40], [18.42, 18.42], [18.45, 18.5], [18.48, 18.5]];
data.map(([v, w]) => console.log(v, convert(v), w));

在这种情况下,可以使用Number类的内置toFixed方法。

相关内容

最新更新