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 相关文章推荐
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
javascript 操作文件 实现方法小结
Jul 02 Javascript
JavaScript通过字典进行字符串翻译转换的方法
Mar 19 Javascript
javascript:void(0)点击登录没反应怎么解决
Nov 13 Javascript
js实现页面跳转的几种方法小结
May 16 Javascript
自制微信公众号一键排版工具
Sep 22 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
Bootstarp基本模版学习教程
Feb 01 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
Nov 11 Javascript
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
利用js实现简单开关灯代码
Nov 23 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
php生成EXCEL的东东
2006/10/09 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
numpy自动生成数组详解
2017/12/15 Python
python MySQLdb使用教程详解
2018/03/20 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
python缩进长度是否统一
2020/08/02 Python
Python list和str互转的实现示例
2020/11/16 Python
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
质检部岗位职责
2013/11/11 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技