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 相关文章推荐
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
Aug 28 Javascript
js将字符串转成正则表达式的实现方法
Nov 13 Javascript
js 走马灯简单实例
Nov 21 Javascript
12个超实用的JQuery代码片段
Nov 02 Javascript
JavaScript面向对象之私有静态变量实例分析
Jan 14 Javascript
js ajaxfileupload.js上传报错的解决方法
May 05 Javascript
详解vue中组件参数
Jul 09 Javascript
js实现鼠标拖拽缩放div实例代码
Mar 25 Javascript
详解jQuery如何实现模糊搜索
May 10 jQuery
vue实现标签云效果的方法详解
Aug 28 Javascript
JavaScript如何实现图片处理与合成
May 29 Javascript
解决vue动态下拉菜单 有数据未反应的问题
Aug 06 Javascript
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 删除无限级目录与文件代码共享
2008/11/22 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
测试php函数的方法
2013/11/13 PHP
php实现Mysql简易操作类
2015/10/11 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
js 与或运算符 || && 妙用
2009/12/09 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
如何利用python进行时间序列分析
2020/08/04 Python
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
《充气雨衣》教学反思
2014/04/07 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书