有人可以让我知道如何在javascript中实现这种舍入吗?
95.123 => 95.13
95.120 => 95.12
95.129 => 95.13
124.121 => 124.13
感谢您的帮助。
A
答案 0 :(得分:1)
使用Math.ceil(num * 100) / 100
console.log(Math.ceil(95.123 * 100) / 100);
console.log(Math.ceil(95.120 * 100) / 100);
console.log(Math.ceil(95.129 * 100) / 100);
console.log(Math.ceil(124.121 * 100) / 100);
答案 1 :(得分:0)
一种快速简便的方法是乘以100,取整并除以100。
let value = 95.123;
let rounded = Math.round(value * 100) / 100;
另一种选择是使用Number.toFixed()
(此处要小心,因为toFixed()
返回的是字符串,而不是数字)。
let value = 95.123;
let rounded = Number((value).toFixed(2));
更花哨的方法是使用指数表示法。
let value = 95.123;
let rounded = Number(Math.round(value+'e2')+'e-2');
可以将其重构为辅助函数以处理不同的十进制值。
function roundToDec(value, decimals) {
let posExp = 'e' + decimals;
let negExp = 'e-' + decimals;
return Number(Math.round(value + posExp) + negExp);
}
let value = 95.123;
let rounded = roundToDec(value, 2);