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 相关文章推荐
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
JSON辅助格式化处理方法
Mar 26 Javascript
防止登录页面出现在frame中js代码
Jul 22 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
javascript常用函数(1)
Nov 04 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
JS调用打印机功能简单示例
Nov 28 Javascript
基于bootstrap的选择框插件icheck
Dec 23 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
Node.js进阶之核心模块https入门
May 23 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
Dec 19 Javascript
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 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绘制饼状图的实现代码
2013/06/07 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python 将字符串转换成字典dict
2013/03/24 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
用python制作个音乐下载器
2021/01/30 Python
店长岗位职责
2013/11/21 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
文明家庭事迹材料
2014/12/20 职场文书
工作时间证明
2015/06/15 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
Vue vee-validate插件的简单使用
2021/06/22 Vue.js