Javascript浮点数乘积运算出现多位小数的解决方法


Posted in Javascript onFebruary 17, 2014

Javascript在进行浮点数的乘积运算,会出现多位小数的情况。

这是由于在运算的时候先把浮点数转化成二进制后进行运算,但是有的小数在二进制编码后出现无限循环,因而导致计算出现了误差,在其它变成语言中也有类似的问题。

原因解释参考自百度知道:

例如:求1038.1-1000
1038.1=10000001110.0001100110011001100110011001100110011001100.....
1000 =1111101000

1038.1转化为二进制是个无限循环小数,1100是循环节,只能取近似值,误差就是这里产生的 如果浏览器版本高,可以用toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

解决方案:根据要保留的小数位数(如4),在计算乘积的时候先乘以(10^4),然后对计算结果除以(10^4),最后对结果取近似值Math.round

var m1 = 2232.00, 
percent = (10/100), 
total = percent*m1; 
alert(total);//223.20000000000002 total = Math.round(total*10)/10; 
alert(total);//223.2
Javascript 相关文章推荐
javascript获取url上某个参数的方法
Nov 08 Javascript
快速解决jQuery与其他库冲突的方法介绍
Jan 02 Javascript
jquery实现textarea 高度自适应
Mar 11 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
Apr 29 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
彻底学会Angular.js中的transclusion
Mar 12 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
Nov 27 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
详解vue为什么要求组件模板只能有一个根元素
Jul 22 Javascript
layui 阻止图片上传的实例(before方法)
Sep 26 Javascript
vue style width a href动态拼接问题的解决
Aug 07 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
eclipse导入jquery包后报错的解决方法
Feb 17 #Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 #Javascript
javascript向后台传送相同属性的参数即数组参数
Feb 17 #Javascript
jquery的ajax简单结构示例代码
Feb 17 #Javascript
toggle()隐藏问题的解决方法
Feb 17 #Javascript
Jquery获取和修改img的src值的方法
Feb 17 #Javascript
Jquery在指定DIV加载HTML示例代码
Feb 17 #Javascript
You might like
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
javascript 打印页面代码
2009/03/24 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
python实现线程池的方法
2015/06/30 Python
python队列queue模块详解
2018/04/27 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
python实现图像拼接
2020/03/05 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
法国珠宝店:CLEOR
2017/01/29 全球购物
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
销售代理协议书
2014/09/30 职场文书
校长师德表现自我评价
2015/03/05 职场文书
导游词之安徽九华山
2019/09/18 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android