和大家分享一个有趣的测试:

0.1+0.2 == 0.3 //false
顿时郁闷,好吧!原来0.1+0.2变成:0.30000000000000004
再来一个 2.4/0.8 =>2.9999999999999996 没办法换种方式,都转换成整数 (2.4 * 100)/(0.8 * 100)
10.22 现在要减去 0.11 结果值又出现了很多的小数 10.110000000000001,然后我就用了 toFixed 方法来过滤小数,但是不知道跟前面那种转换成整数后再执行哪种效率高,好!还是试下再说吧!
var date1 = new Date();
for(var i = 0; i < 10000; i++){
var result1 = (10.22 - 0.11).toFixed(2);
}
alert(new Date() - date1);//效率低
var date2 = new Date();
for(var j = 0; j < 10000; j++){
var result2 = (10.22 * 1000 - 0.11 * 1000) / 1000;
}
alert(new Date() - date2);//效率高
alert(0.1 + 0.2 == 0.3); //既然返回false
alert(0.1 + 0.2); //既然返回0.30000000000000004
alert(parseFloat(0.1) + parseFloat(0.2)); //还是返回0.30000000000000004
查了一些资料,一是 JavaScript 浮点数计算的 Bug,另一个是和计算机最终转换成二进制计算有关系,但是为什么不是所有小数都会有这种现象,目前我也不清楚,有时间再去深入研究一下。
解决方法:
解决这种问题两种方法,第一种就是利用JavaScript 的toFixed(n) 方法,直接获取N 位小数,不过,个人觉得这种方法在数据精度上会有一些问题。如果数据精度要求不高的话可以使用。
alert((0.1 + 0.2).toFixed(1));
第二种方法就是自己编写运算方法。以下是自定义加法函数,使用此方法进行相加会避免上面问题。
//自定义加法运算
function addNum (num1, num2) {
var sq1,sq2,m;
try {
sq1 = num1.toString().split(".")[1].length;
}
catch (e) {
sq1 = 0;
}
try {
sq2 = num2.toString().split(".")[1].length;
}
catch (e) {
sq2 = 0;
}
m = Math.pow(10,Math.max(sq1, sq2));
return (num1 * m + num2 * m) / m;
}
alert(addNum(0.1, 0.2));
当然,简单一点也可以写成:alert((num * 3 + 10 * 3) /3); 这样也不会出现 N 多位小数。
alert((num * 3 + 10 * 3) /3); 与 alert(num + 10); 这两种写法计算机在底层转换成二进制运算是有区别的,或许这就是出现上述问题的原因,还有待我们去深入研究,大家可以多多讨论。
相关推荐:
AI通过算法和数据生成的作品:科技与艺术的跨越,带来无限创意可能,ai优化程序
SEO优化快:如何在短时间内实现网站流量爆发,Lacey0508ai
什么是seo技术,什么是seo及seo的作用 ,AI倒放仓鼠
seo竞价做的什么工作,seo 竞价 ,office智能ai
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
为什么要做seo si,为什么要做* ,ai里面怎么扣二维码
ChatGPTApp怎么调大字体?提升阅读体验,让文字更清晰,推荐ai音频
chatai写作免费一键生成,轻松解决写作难题!,陈逗逗ai换脸在线看
软件AI的全称:人工智能驱动未来的关键力量
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
ChatGPT可以实现新闻报道的即时自动化生成,怎么更改ai2的图标
SEO快速提升SEO排名的有效策略:让你的网页飞跃搜索引擎,ai调色食物
用AI优化文章,轻松提升内容质量与创作效率
如何通过AI写文章,轻松提高写作效率与质量
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
SEO模块:提升网站排名,驾驭数字营销未来,营口网站建设制作平台
优化软件:让电脑性能焕然一新,提升效率的秘密武器,大理网站推广招聘信息最新
seo自己做什么,自己做seo需要花钱吗 ,ai850775
SEO优化需要给网站做哪些优化工作?,ai捕捉火苗
京东业绩再创新高:未来电商巨头的成功之道,如何做seo优化留痕
仿写AI:智能时代的创作革命,洛江区移动房网站推广
ChatGPT3.5需要登录使用吗?AI使用的真相!,电脑版写作ai推荐怎么关闭
ChatGPT破解版:让人工智能助力你的工作与生活,ai cos帽
ChatGPT破解:人工智能未来的无限可能,污污AI解说
AI人工智能生成文章:开启写作新时代
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
优化原理:提升效率、创新突破的核心法则,印刷包装推广有哪里网站
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
seo需要学些什么内容,学seo的基础 ,中国ai公司年收入
未来智能:AI智能人工软件引领数字化变革
乘风SEO:突破困境,领航网络营销新时代,武汉靠谱的关键词排名
ChatGPT的超链接点不开?解决方法一网打尽!,情感ai写作指令是什么
SEO特点与实施策略:提升网站流量与排名的关键,定西抖音seo价格查询
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
ChatGPT显示503:如何应对AI服务不可用的困境?,ai宝贝宝贝
seo软文用什么论坛,seo软文是什么意思 ,爱字幕的AI变脸不见了
SEO关键词推广软件官网-助力企业实现高效精准的网络营销,圈圈ai
SEO人工优化-让你的网页轻松登上搜索引擎首页,ai主母
pbootcms前端翻译插件-轻松实现网站多语言支持,拓展全球市场,st ai绘画
文章疑似AI生成怎么办?如何辨别并应对AI生成文章的挑战
SEO可以帮助网站在搜索引擎中获得较高的排名-助力企业数字化转型的关键,赵立新AI换脸图片对比
AI仿写文章:开启内容创作新纪元
一秒采集:提升效率、创造价值的秘密武器,苏州网站整站优化
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
未来科技:AI工具为生活赋能,打造智能未来
seo相当于什么职业,seo相当于什么职业类别 ,usatisfy ai
SEO优化关键词品牌:如何通过精准的关键词提升品牌价值,ai免费智能写作论文
《“查看更多”背后的秘密:让你的人生更加丰富多彩!》,宁安公司网站建设
SEO检测,让网站排名飞升的秘密武器,高端快消食品营销推广