zoukankan      html  css  js  c++  java
  • js加减法运算多出很多小数点

    链接:http://www.jb51.net/article/73043.htm

    解决方法:
    解决这种问题两种方法,第一种就是利用JavaScript 的toFixed(n) 方法,直接获取N 位小数,不过,个人觉得这种方法在数据精度上会有一些问题。如果数据精度要求不高的话可以使用。

    1
    alert((0.1 + 0.2).toFixed(1));

    第二种方法就是自己编写运算方法。以下是自定义加法函数,使用此方法进行相加会避免上面问题。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    //自定义加法运算
    function addNum (num1, num2) {
     var sq1,sq2,m;
     try {
      sq1 = num1.toString().split(".")[1].length;
     }
     catch (e) {
      sq1 = 0;
     }
     try {
      sq2 = num2.toString().split(".")[1].length;
     }
     catch (e) {
      sq2 = 0;
     }
     m = Math.pow(10,Math.max(sq1, sq2));
     return (num1 * m + num2 * m) / m;
    }
    alert(addNum(0.1, 0.2));

    当然,简单一点也可以写成:alert((num * 3 + 10 * 3) /3); 这样也不会出现 N 多位小数。
    alert((num * 3 + 10 * 3) /3); 与 alert(num + 10); 这两种写法计算机在底层转换成二进制运算是有区别的,或许这就是出现上述问题的原因,还有待我们去深入研究,大家可以多多讨论。

  • 相关阅读:
    瀑布流布局(等宽不等高jQuery)
    多组图自动无限循环(swiper轮播)
    $.ajax的标准写法
    走马灯特效
    如何使用js改变HTML中title里面固定的文字
    test
    单例设计模式
    线程的五种状态(线程的生命周期)
    Net基础班第十三天
    装箱、拆箱
  • 原文地址:https://www.cnblogs.com/wanlibingfeng/p/9153826.html
Copyright © 2011-2022 走看看