美文网首页js
加减乘除,避免参数类型、小数点个数不同等出现的误差

加减乘除,避免参数类型、小数点个数不同等出现的误差

作者: 悠哉悠哉过日子 | 来源:发表于2017-11-15 16:09 被阅读6次

//加法

function add(a, b) {

    var c, d, e;

    try{

        c = a.toString().split(".")[1].length;

    }catch(f) {

        c = 0;

    }

    try{

        d = b.toString().split(".")[1].length;

    }catch(f) {

        d = 0;

    }

    return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;

}

//减法前边减后边

function sub(a, b) {

    var c, d, e;

    try{

        c = a.toString().split(".")[1].length;

    }catch(f) {

        c = 0;

    }

    try{

        d = b.toString().split(".")[1].length;

    }catch(f) {

        d = 0;

    }

    return e = Math.pow(10, Math.max(c, d)), (mul(a, e) - mul(b, e)) / e;

}

//除法

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));

}

//乘法

function mul(a, b) {

    var c = 0,

    d = a.toString(),

    e = b.toString();

    try{

        c += d.split(".")[1].length;

    }catch(f) {}

    try{

        c += e.split(".")[1].length;

    }catch(f) {}

    return Number(d.replace(".","")) * Number(e.replace(".","")) / Math.pow(10, c);

}

相关文章

  • 加减乘除,避免参数类型、小数点个数不同等出现的误差

    //加法 function add(a, b) { var c, d, e; try{ c = a.toStrin...

  • Java中Float 和Double类型的精确计算

    交流群 531563207 开发中double和float类型的数据 乘或加的时候都会出现误差,可以使用此方法来避免误差

  • 【从零开始学Java】学习笔记day010

    一.方法重载 概念: 方法名相同,参数列表不同,与返回值类型无关 参数列表不同: 参数个数不同,算不同 参数类型不...

  • 函数重载、extern C、默认参数

    函数重载 Overload Overload就是同一个上下文允许出现同名函数,但是参数个数不同、参数类型不同、参数...

  • Android函数重载

    函数重载:在同一个class中,出现了函数名称相同但参数不同的现象 参数不同:1.个数不同 2.类型不同 3.个数...

  • iOS float double 类型计算不精确

    因为做的商城项目需要计算钱数,以前一直用的float类型相加,但是对照发现小数点后面有误差,俩位小数点相加变成了三...

  • 方法重载

    在同一个类中,允许出现同名的方法,只要方法的参数列表不同 参数列表不同:参数个数,数据类型,顺序 对于重载的调用,...

  • java中方法定义

    java中不能定义方法名,参数个数与类型,完全相同的方法。 方法签名=方法名+参数(个数及类型),但不包括方法返回...

  • #4 kotlin 函数

    函数重载 参数个数不同,参数类型不同。返回值不同不算重载 如果返回类型不同,不能算重载,因此函数名不能一样 形参不...

  • Java面向对象 基础知识(一)

    方法的重载: 指的是方法名称相同,但是参数的类型和个数不同。通过参数的类型和个数不同来完成不同的功能。 类的定义:...

网友评论

    本文标题:加减乘除,避免参数类型、小数点个数不同等出现的误差

    本文链接:https://www.haomeiwen.com/subject/afchvxtx.html