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));
    }
  • 相关阅读:
    使用python scrapy爬取知乎提问信息
    [java基础]一文理解java多线程必备的sychronized关键字,从此不再混淆!
    python scrapy 登录知乎过程
    python scrapy爬虫框架概念介绍(个人理解总结为一张图)
    【干货】一文理解Druid原理架构(时序数据库,不是ali的数据库连接池)
    2016年我所面试过的那些公司
    写在2017年1月
    分页pagination实现及其应用
    inconsistent line count calculation in projection snapshot
    来去匆匆
  • 原文地址:https://www.cnblogs.com/kdbBlog/p/5086610.html
Copyright © 2011-2022 走看看