页面加载中,请稍候 。。。
 

JavaScript 数值型字符串求和比较问题

2020-03-21 20:07:25JavaScriptjQuery464

最近在项目中遇到了一个问题,就是通过 JavaScript 把几个数值型字符串相加求和,得到结果之后与另一个数值型字符串进行比较,最后得到的比较结果数据却与实际结果不符。

例如下面这几个数值型字符串相加,并与另一个数值型字符串比较:

<script type="text/javascript">
// a 的值为 5.75842099999999999
var a = Number("3.6302") + Number("0.3") + Number("0.7309") + Number("0.424921") + Number("0.1724") + Number("0.5");
var b = Number("5.758421");
alert(a == b);
</script>

上面的比较结果为 False,主要原因可以通过上面的 a 数据看出来,所以要得到正确的结果数据,需要对求得结果进行保留小数位数,通过 toFixed 函数可以实现这样的功能,最终求和函数如下:

<script type="text/javascript">
function ToFixed(digit) {
var v = 0;
var length = arguments.length;
if (length > 1) {
for (var index = 1; index < length; index++) {
v += Number(arguments[index]);
}
}
return Number(v.toFixed(digit));
}
</script>

参数 digit 表示小数保留位数,把上面的求和函数通过 ToFixed 来重新实现,最终比较结果与实际值相符,代码如下:

<script type="text/javascript">
var a = ToFixed(6, "3.6302", "0.3", "0.7309", "0.424921", "0.1724", "0.5");
var b = ToFixed(6, "5.758421");
alert(a == b);
</script>
暂无相关数据!
公告
u4fa0 & u8273
本博客诞生于 2020 年 3 月 5 日,是一个以编程开发为主的技术型博客,希望我的博文能够帮助到你。
定制开发流程
业务咨询提交需求开始实施确认售后服务
联系我们