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));
    }
  • 相关阅读:
    Statistics Report for pid 21058 on 1wt.eu
    Wget下载终极用法和15个详细的例子
    Importing fabric into your own scripts
    Introduction to Build Profiles
    SSH Programming with Paramiko | Completely Different
    maven repository research webpage
    geek cn tech
    Nginx + Tomcat + Session学习 ﹎敏ō 博客园
    MonoRail 简介
    Linux 中出现的bash: syntax error near unexpected token `
  • 原文地址:https://www.cnblogs.com/kdbBlog/p/5086610.html
Copyright © 2011-2022 走看看