在Javascript中parseFloat()方法会产生精度问题
复制代码 代码如下:
<script language="javascript">
var a = "0.11";
var b = "0.2801";
var c = "1.002";
var sum1 = parseFloat(a) + parseFloat(b) + parseFloat(c);
var sum2 = (parseFloat(a) + parseFloat(b) + parseFloat(c)).toFixed(4)
document.write("a+b+c=" + sum1);
document.write("<br/>")
document.write("a+b+c=" + sum2)
</script>
a,b,c相加本来为1.3921,但sum1得出的结果为:1.3921000000000001,这不是想要的结果,特别在计算金钱的时候,不需要如此精确的精度。可以使用toFixed(n)方法修正后(n是小数后精确的位数)。
例如:parseFloat(1.392143).toFixed(2)=1.39。
复制代码 代码如下:
<script language="javascript">
var a = "0.11";
var b = "0.2801";
var c = "1.002";
var sum1 = parseFloat(a) + parseFloat(b) + parseFloat(c);
var sum2 = (parseFloat(a) + parseFloat(b) + parseFloat(c)).toFixed(4)
document.write("a+b+c=" + sum1);
document.write("<br/>")
document.write("a+b+c=" + sum2)
</script>
a,b,c相加本来为1.3921,但sum1得出的结果为:1.3921000000000001,这不是想要的结果,特别在计算金钱的时候,不需要如此精确的精度。可以使用toFixed(n)方法修正后(n是小数后精确的位数)。
例如:parseFloat(1.392143).toFixed(2)=1.39。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“javascript的parseFloat()方法精度问题探讨”评论...