toFixed会造成精度丢失
ChatGPT的答案
export function numFormat(value) {
if (typeof value !== 'number') {
return '0.00';
}
const intValue = Math.floor(value * 100) / 100;
return intValue.toLocaleString('en-US', {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
}
答案二
export function numFormat(value) {
let sign = value < 0 ? '-' : ''
if (!value) return '0.00'
var intPart = Number(value) - (Number(value) % 1)
var intPartFormat = Math.abs(intPart)
.toString()
.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
intPartFormat = sign + intPartFormat
var floatPart = '.00'
var value2Array = value.toString().split('.')
if (value2Array.length == 2) {
floatPart = value2Array[1].toString()
if (floatPart.length == 1) {
return (intPartFormat + '.' + floatPart + '0').toString()
} else {
if (floatPart.length > 2) {
floatPart = floatPart.substring(0, 2)
}
return (intPartFormat + '.' + floatPart).toString()
}
} else {
return (intPartFormat + floatPart).toString()
}
}