JS 小数计算精度问题

// 此函数用来解决小数计算问题
Number.prototype.toFixedN = function(digits = 0) {
    return Math.round(this * (10 ** digits)) / (10 ** digits)
}

const max = 999

for(let i = 1; i <= max; i++) {
    const decimal = (i / 100).toFixedN(2) // 保证 decimal 没有精度问题
    // const result = (decimal * 100).toString() // 测试 JS 形如 x.xx 或 x.x 的小数 乘以 100 永远能得到正确的 结果吗?; 答案: 会有部分结果出现 ❌
    const result = (decimal * 100).toFixedN().toString() // 打开此行:结果均没问题
    console.log(`${decimal.toString()} x 100 = ${result} ${result.length > 3 ? '❌' : ''}`)
}
posted @ 2025-12-24 10:35  暗恋桃埖源  阅读(2)  评论(0)    收藏  举报