Javascript浮点数乘积运算出现多位小数的解决方法

 更新时间:2014年02月17日 15:39:09   作者:  
这篇文章主要介绍了Javascript浮点数乘积运算出现多位小数的解决方法,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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

相关文章

  • JS实现图片数字时钟

    JS实现图片数字时钟

    这篇文章主要为大家详细介绍了JS实现图片数字时钟,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • javascript实现拖拽碰撞检测

    javascript实现拖拽碰撞检测

    这篇文章主要为大家详细介绍了javascript实现拖拽碰撞检测,碰撞改变颜色,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 基于javascript实现动态显示当前系统时间

    基于javascript实现动态显示当前系统时间

    这篇文章主要介绍了基于javascript实现动态显示当前系统时间,以一个完整实例形式较为详细的分析了js动态显示当前系统时间的实现技巧,需要的朋友可以参考下
    2016-01-01
  • 每个 JavaScript 工程师都应懂的33个概念

    每个 JavaScript 工程师都应懂的33个概念

    这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。它不是必备,但在未来学习( JavaScript )中,可以作为一篇指南,需要的朋友可以参考下
    2018-10-10
  • JS+DIV实现的卷帘效果示例

    JS+DIV实现的卷帘效果示例

    这篇文章主要介绍了JS+DIV实现的卷帘效果,结合具体实例形式对比分析了javascript响应鼠标事件动态操作页面元素属性实现展开与折叠效果的相关操作技巧,需要的朋友可以参考下
    2017-03-03
  • 原生js实现购物车逻辑和功能

    原生js实现购物车逻辑和功能

    这篇文章主要为大家详细介绍了原生js实现购物车逻辑和功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 插件:检测javascript的内存泄漏

    插件:检测javascript的内存泄漏

    插件:检测javascript的内存泄漏...
    2007-03-03
  • 关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解

    关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的

    这篇文章主要介绍了关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用,需要的朋友可以参考下
    2017-05-05
  • javascript中if和switch,==和===详解

    javascript中if和switch,==和===详解

    这篇文章主要给大家详细介绍了javascript中if和switch,==和===的区别和联系,十分的细致实用,有需要的小伙伴可以参考下。
    2015-07-07
  • 在JavaScript中监听IME键盘输入事件

    在JavaScript中监听IME键盘输入事件

    在 JavaScript 中监听用户的键盘输入是很容易的事情,但用户一旦使用了输入法,问题就变得复杂了。
    2011-05-05

最新评论

?


http://www.vxiaotou.com