javascript - Js经典的0.1+0.2问题
黄舟
黄舟 2017-04-11 10:16:49
[JavaScript讨论组]

由于公司业务,我要使用js给客户开发一个基于网页的数学运算器,所以js的数学运算这坑必须趟
那么JS下0.1+0.2会等于0.30000000004这个问题,请问大家都是如何巧妙解决的呢

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
PHP中文网

function fixNumberDecimalDigits(number, digits) {

var formatNumber = parseFloat(number);
if (isNaN(formatNumber)) return false;

var digits = digits || 2;
formatNumber = formatNumber.toString();

var reg = new RegExp('([0-9]+.[0-9]{' + digits +'})[0-9]*');
var stringNumber = formatNumber.replace(reg, "$1");
var decimalPosition = stringNumber.indexOf('.');
if (decimalPosition < 0) {
    decimalPosition = stringNumber.length;
    stringNumber += '.';
}
while (stringNumber.length <= decimalPosition + digits) {
    stringNumber += '0';
}
return stringNumber;

}

var a = 0.1,

b = 0.2,
c = a + b ;

console.log(fixNumberDecimalDigits(c, 1))

PHP中文网

自己写一个方法就好了。

天蓬老师
Math.round( (.1+.2)*100)/100;//0.3
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号