3 回答
TA贡献1876条经验 获得超7个赞
您可以检查固定值是否更改并选择格式类型。
function format(f) {
return f === +f.toFixed(2)
? f.toFixed(2)
: f.toString()
}
console.log([4.5, 3.331, 3].map(format));
TA贡献1744条经验 获得超4个赞
使用正则表达式检查点后的数字。如果小于 2,则使用toFixed(2),否则什么都不做。
function f(n) {
let diff = Number(n) - Math.floor(Number(n));
return /\.[0-9]{2,}/.test(diff.toString()) ? n : n.toFixed(2)
}
const nums = [3.331, 2.5, 3].map(f)
console.log(nums)
TA贡献2003条经验 获得超2个赞
这看起来像一个字符串格式而不是一个舍入问题:
var value = 4 + '.';
var [num, dec] = value.split('.');
if (dec.length < 2) {
dec = (dec + '00').substring(0, 2);
}
console.log(`${num}.${dec}`);
可运行的片段:
function format(value) {
var [num, decimal] = (value + '.').split('.');
if (decimal.length < 2) {
decimal = (decimal + '00').substring(0, 2);
}
return `${num}.${decimal}`;
}
console.log([4, 4.5, 3.331].map(format));
4 -> 4.00
4.5 -> 4.50
3.331 -> 3.331
添加回答
举报