zoukankan      html  css  js  c++  java
  • chorme加减乘除浮点数处理

    在处理简单的1-0.7的时候发现chorme给的结果竟然是0.30000000000000004,瞬间蛋疼了,这数据能用?!
    然后去百度找到了简单的两个数的加减乘除,然后修改了下,除了除法都可以多个数进行操作。那样3个数相加就不用套个add函数了。
    原网址:http://www.2cto.com/kf/201502/376763.html
    function add() {
        var e,arr=[0],result = 0;
        for (var i = 0; i < arguments.length; i++) {
            try {
                arr.push(arguments[i].toString().split(".")[1].length);
            } catch (f) {}
        };
        arr.sort(function(a,b){return(b-a)});
        e = Math.pow(10, arr[0]);
        for (var i = 0; i < arguments.length; i++) {
            try {
                result += mul(arguments[i],e)
            } catch (f) {}
        };
        return result / e;
    }
     
    function sub() {
        var e,arr=[0],result;
        for (var i = 0; i < arguments.length; i++) {
            try {
                arr.push(arguments[i].toString().split(".")[1].length);
            } catch (f) {}
        };
        arr.sort(function(a,b){return(b-a)});
        e = Math.pow(10, arr[0]);
        result = mul(arguments[0],e);
        for (var i = 1; i < arguments.length; i++) {
            try {
                result -= mul(arguments[i],e)
            } catch (f) {}
        };
        return result / e;
    }
     
    function mul() {
        var result = 1,c = 0;
        for (var i = 0; i < arguments.length; i++) {
            try {
                c += arguments[i].toString().split(".")[1].length;
            } catch (f) {}
        };
        for (var i = 0; i < arguments.length; i++) {
            result *= Number(arguments[i].toString().replace(".", ""));
        };
        result /= Math.pow(10, c);
        return result;
    }
     
    function div(a, b) {
        var c, d, e = 0,
            f = 0;
        try {
            e = a.toString().split(".")[1].length;
        } catch (g) {}
        try {
            f = b.toString().split(".")[1].length;
        } catch (g) {}
        return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), mul(c / d, Math.pow(10, f - e));
    }
  • 相关阅读:
    超级好用的excel导出方法,比phpexcel快n倍,并且无乱码
    PHP生成随机数;订单号唯一
    php判断检测一个数组里有没有重复的值
    修改git 提交的用户名和用户Email命令
    利用 PHP CURL zip压缩文件上传
    Linux 重启 PHP-FPM 命令
    Postgresql 时间串转换格式
    rollup node.js 打包工具
    PHP正则表达式提取html超链接中的href地址
    解决Ubuntu系统下 mysql 远程连接失败的问题 ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xx.xx' (110)
  • 原文地址:https://www.cnblogs.com/kdbBlog/p/5086610.html
Copyright © 2011-2022 走看看