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 相关文章推荐
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
Node.js中使用mongoskin操作mongoDB实例
Sep 28 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
jQuery实现平滑滚动到指定锚点的方法
Mar 20 Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 Javascript
javascript点击按钮实现隐藏显示切换效果
Feb 03 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
JavaScript 事件对内存和性能的影响
Jan 22 Javascript
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
Vuex的API文档说明详解
Feb 05 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 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
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
vue中的scope使用详解
2017/10/29 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
python Django连接MySQL数据库做增删改查
2013/11/07 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Python生成随机验证码的两种方法
2015/12/22 Python
python 上下文管理器使用方法小结
2017/10/10 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python3.6简单反射操作示例
2018/06/14 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
小学语文教学经验交流材料
2014/06/02 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
对Golang中的FORM相关字段理解
2021/05/02 Golang
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android