zoukankan      html  css  js  c++  java
  • JS浮点数相乘运算解决误差的方法 转载

    /**
    * js乘法:两个浮点数的乘积会出现误差,这个函数返回较为精确的结果。
    */
    function Multiply(arg1, arg2) {
        var m = 0; //扩大后的两数相乘比初始值相乘扩大的倍数
        var s1 = arg1.toString();
        var s2 = arg2.toString();

        try {
            //获取第一个参数的小数部分长度,去掉小数点后,小数部分的长度就是初始值的小数点右移的位数
            m += s1.split(".")[1].length;
        } catch (e) {
        }

        try {
            ////获取第二个参数的小数部分长度,去掉小数点后,小数部分的长度就是初始值的小数点右移的位数
            m += s2.split(".")[1].length;
        } catch (e) {
        }

        //返回值:将参数的小数点去掉然后相乘,最后除以Mah.pow(10,m)
        return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
    }

    http://acefunny.blog.51cto.com/970620/618373 参考信息

  • 相关阅读:
    子矩阵
    [Ahoi2008]Meet 紧急集合
    立体图
    CF933B A Determined Cleanup
    CF746G New Roads
    树的重量
    CF519E A and B and Lecture Rooms
    矩阵
    深入浅出乘法逆元
    20180519模拟赛T2——pretty
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2576312.html
Copyright © 2011-2022 走看看