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 相关文章推荐
Firefox div高度自适应
Apr 28 Javascript
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
Eclipse去除js(JavaScript)验证错误
Feb 11 Javascript
node.js Web应用框架Express入门指南
May 28 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
js实现字符串和数组之间相互转换操作
Jan 12 Javascript
JavaScript常用代码书写规范的超全面总结
Sep 11 Javascript
JavaScript学习笔记之DOM操作实例分析
Jan 08 Javascript
JavaScript创建、读取和删除cookie
Sep 03 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
webpack打包html里面img后src为“[object Module]”问题
Dec 22 Javascript
Element DateTimePicker日期时间选择器的使用示例
Jul 27 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 求质素(素数) 的实现代码
2011/04/12 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
用jQuery模拟select下拉框的简单示例代码
2014/01/26 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JavaScript 基本概念
2015/01/20 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
vue中的inject学习教程
2019/04/24 Javascript
Node.js 实现抢票小工具 & 短信通知提醒功能
2019/10/22 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
Vue指令实现OutClick的示例
2020/11/16 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python构建深度神经网络(DNN)
2018/03/10 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
电子商务网站的创业计划书
2014/01/05 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
会计的岗位职责
2014/03/15 职场文书
房地产推广策划方案
2014/05/19 职场文书
娱乐节目策划方案
2014/06/10 职场文书
幼儿发展评估方案
2014/06/11 职场文书
计算机求职信
2014/07/02 职场文书
2015政治思想表现评语
2015/03/25 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
Mybatis是这样防止sql注入的
2021/12/06 Java/Android
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL