如何在JavaScript中将数字格式化,例如将c#设置为0。####吗?
我使用函数.toFixed(4)
,但格式为0.0000
var x = a / b;
console.log(x.toFixed(4));
我要这样格式化...
1.0000 -> 1
1.2000 -> 1.2
1.2300 -> 1.23
1.2340 -> 1.234
1.2345 -> 1.2345
1.23456... -> 1.2346
答案 0 :(得分:3)
结合Number.prototype.toFixed()
并进行少量RegExp
的替换
console.log(x.toFixed(4).replace(/\.?0+$/, ''))
const nums = ['1.0000', '1.2000', '1.2300', '1.2340', '1.2345', '1.23456']
const rx = /\.?0+$/
nums.forEach(num => {
console.info(num, ' -> ', parseFloat(num).toFixed(4).replace(rx, ''))
})
答案 1 :(得分:1)
toFixed()方法使用定点表示法格式化数字。
toFixed不会为您提供这种格式的结果,您可以使用正则表达式更改小数点后的值
let a = 4
let b = 3
let x = ( a / b ).toFixed(4)
console.log(x.replace(/\.(.*)$/g,(match,g1)=>{
return `.${g1 ? '#'.repeat(g1.length) : ''}`
}));
更新
let a = 4
let b = 3
let changedFormat = (a,b) => {
return ( a / b ).toFixed(4).replace(/\.?0+$/g, '')
}
console.log(changedFormat(a,b))
console.log(changedFormat(1,1))
console.log(changedFormat(6,4))