在处理简单的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));
}

chorme加减乘除浮点数处理的更多相关文章

  1. 【Python】2.12学习笔记 变量

    变量 关于变量我有一个不能理解的,关于全局变量作用域与地址的问题,学函数的时候我可能会搞懂它并且写下来 另外,其实昨天说的是有些不准确的,\(Python\)里的变量不是不用声明类型,只是声明方式特殊 ...

  2. php浮点数加减乘除bug

    项目测试阶段,少部分微信支付成功,但是在异步通知校对订单金额是否一致时,一直被认定订单金额不一致. 类似于: 浏览器输出: 分析: 因为计算机二进制无法准确表示部分浮点数(如2.03.0.58等等), ...

  3. Java中的浮点数-科学计数法-加减乘除

    上次,提到"元转分"这个浮点数问题,boss倾向于手动把1.23元这种格式,转换成123分.    但实际上,浮点数很容易遇到精度问题.    比如,System.out.prin ...

  4. 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。

    package com.minxinloan.utils; import java.math.BigDecimal; public class Arith { // 源文件Arith.java: /* ...

  5. JS浮点数的加减乘除运算

    文章来源地址:http://blog.csdn.net/lyd518/article/details/7236464 转载请注明出处,尊重作者劳动成果,谢谢!问题这样的: 37.5*5.5=206.0 ...

  6. js控制精度的加减乘除:js浮点数计算问题

    //加法函数 function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[ ...

  7. 解决JS浮点数(小数)计算加减乘除的BUG

    在JavaScript中输出下面这些数值(注意不能作为字符串输出):0.1000000000000000000000000001(28位小数).0.10000000000000000000000000 ...

  8. javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题

    /* * js数学计算 add by yan */ /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较 ...

  9. js浮点数加减乘除

    浮点数精确计算 /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果. ** 调用:ac ...

随机推荐

  1. HDOJ--ACMSteps--2.1.8--Leftmost Digit-(取对数,数学)

    Problem Description Given a positive integer N, you should output the leftmost digit of N^N. Input T ...

  2. struts2+ajax实现异步验证

    由于老师布置作业的需要,在添加管理员的时候,要实现验证添加的管理员的用户名是否在数据库中已经存在,然后再客户端给用户一个提示.我首先想到的就是利用ajax实现异步验证技术,由于利用的ssh框架,所以在 ...

  3. discuz!迁移指南

    转自:http://jingyan.baidu.com/article/f7ff0bfc77114b2e26bb1390.html 曾经在本地搭建过一个discuz!论坛,现在买了域名和服务器,那么怎 ...

  4. 用SqlBulkCopy批量插入数据 遇到的错误

    在将txt文本格式的数据导入到数据库中时候,使用的是SqlBulkCopy.但是出现了多处错误,在网上查到得资料如下: 错误一:来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nv ...

  5. pop动画使用示例

    // 弹簧动画 POPSpringAnimation *anim = [POPSpringAnimation animationWithPropertyNamed:kPOPViewFrame]; an ...

  6. 使用VNC远程管理VPS(Centos系统)

    首先安装桌面环境,我选择的是xfce,轻量级桌面,小巧实用不占太多内存,(占用内存方面,xfce<kde,kde<gnome). centos默认源里面没有xfce,首先安装epel源,然 ...

  7. 核心动画 CAAnimation 进阶

    转载自:http://www.cofcool.net/development/2015/06/20/ios-study-note-nine-CoreAnimation/ Core Animation, ...

  8. android studio 学习进阶

    1,下载地址 :http://pan.baidu.com/s/1eQxO1MU#path=%252FAndroid-Studio

  9. ios复制到剪贴板

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  10. ecstore中kvstore之mongodb

    mongodb安装 详细见 http://blog.csdn.net/motian06/article/details/17560067 mongodb扩展安装 详细见 http://blog.csd ...