首页 > web前端 > js教程 > 正文

为什么 toFixed(2) 对某些小数值的舍入不正确?

Patricia Arquette
发布: 2024-10-22 14:40:02
原创
416 人浏览过

Why is toFixed(2) Rounding Incorrectly for Certain Decimal Values?

Javascript toFixed 舍入差异

toFixed(2) 未对某些十进制值进行舍入,在提供的示例中显示 859.38 而不是 859.39 。这种差异可归因于 toFixed() 方法的浏览器实现的差异。

要避免此问题并确保跨浏览器的舍入一致,请考虑使用 blg 推荐的 toFixed10() 方法。即使对于扩展的精度值,此方法也能提供准确的舍入。

以下是包含 toFixed10() 的更新代码片段:

function toFixed(num, precision) {
    return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);
}
...
$('#lblTotalSprice').text('$' + addCommas(toFixed(currSprice, 2)));
$('#lblTotalPrice').text('$' + addCommas(toFixed(currPrice, 2)));
$('#lblTotalDiscount').text('$' + addCommas(toFixed(currDiscount, 2)));
$('#lblTotalDeposit').text('$' + addCommas(toFixed(currDeposit, 2)));
登录后复制

以上是为什么 toFixed(2) 对某些小数值的舍入不正确?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!