`
lizaochengwen
  • 浏览: 644329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js浮点数据类型的计算

阅读更多
JS浮点数据类型的计算,如下实例:

    //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。  
    //调用:accMul(arg1,arg2)  
    //返回值:arg1乘以arg2的精确结果  
    function accMul(arg1,arg2)  
    {  
        var m=0,s1=arg1.toString(),s2=arg2.toString();  
        try{m+=s1.split(".")[1].length}catch(e){}  
        try{m+=s2.split(".")[1].length}catch(e){}  
        return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)  
    }  
      
    //给Number类型增加一个mul方法,调用起来更加方便。  
    Number.prototype.mul = function (arg){  
        return accMul(arg, this);  
    }  
      
    //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。  
    //调用:accDiv(arg1,arg2)  
    //返回值:arg1除以arg2的精确结果  
    function accDiv(arg1,arg2){  
        var t1=0,t2=0,r1,r2;  
        try{t1=arg1.toString().split(".")[1].length}catch(e){}  
        try{t2=arg2.toString().split(".")[1].length}catch(e){}  
        with(Math){  
            r1=Number(arg1.toString().replace(".",""))  
            r2=Number(arg2.toString().replace(".",""))  
            return (r1/r2)*pow(10,t2-t1);  
        }  
    }  
      
    //给Number类型增加一个div方法,调用起来更加方便。  
    Number.prototype.div = function (arg){  
        return accDiv(this, arg);  
    }  
      
    //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。  
    //调用:accAdd(arg1,arg2)  
    //返回值:arg1加上arg2的精确结果  
    function accAdd(arg1,arg2){  
        var r1,r2,m;  
        try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}  
        try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}  
        m=Math.pow(10,Math.max(r1,r2))  
        return (accMul(arg1,m)+accMul(arg2,m))/m  
    }  
      
    //给Number类型增加一个add方法,调用起来更加方便。  
    Number.prototype.add = function (arg){  
        return accAdd(arg,this);  
    }  
      
    //说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。  
    //调用:accSub(arg1,arg2)  
    //返回值:arg1减上arg2的精确结果  
    function accSub(arg1,arg2){      
        return accAdd(arg1,-arg2);  
    }  
      
    //给Number类型增加一个sub方法,调用起来更加方便。  
    Number.prototype.sub = function (arg){  
        return accSub(this,arg);  
    }  
分享到:
评论

相关推荐

    js中浮点类型数据的计算

    js中浮点类型数据的计算 7.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数)  我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998  怎么会这样,两个只有一位小数的数字...

    JavaScript程序设计课件:数值型.pptx

    在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。 2.4.1 数值型 2、数据类型分类 2.4.1 数值型 2、数据类型分类 ...

    nat:确保数字在自然数内(0、1、2 ...)或引发RangeError

    因为JavaScript使用“数字”来引用其浮点数据类型,所以当我们要说的是“数学数字”时,我们总是会说“数学数字”。 该软件包与数学自然数(非负整数)有关。 只要有足够的内存,所有这些都可以安全地表示为...

    Python变量的输入输出-格式化输出浮点型变量

    Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器...

    framework_laya.zip

    命名空间 es Third 全局事件派发&监听 tween 链式缓动 已接入Laya.Ease Collision 2D碰撞检测 Ray2D 2D射线 Mathf Math库的扩展 包含一些Math库中没有的数学方法 Matrix 4x4浮点矩阵,可以...TypeUtils 判断js数据类型

    geotiff.js:geotiff.js是一个小型库,用于解析TIFF文件以进行可视化或分析。 它用纯JavaScript编写,可在浏览器和node.js应用程序中使用

    支持的数据类型: (美)Int8 / 16/32 UInt1-31(有一些缺点) 浮动16/32/64 启用的压缩: 无压缩 打包位 左翼 放气(具有浮点或水平预测变量支持) JPEG格式 自动选择要阅读的概述级别 通过图像窗口或边界框...

    JavaScript解决浮点数计算不准确问题的方法分析

    几乎所有的编程语言都会有类似精度误差的问题,只不过在 C++/C#/Java 这些语言中已经封装好了方法来避免精度的问题,而 JavaScript 是一门弱类型的语言,从设计思想上就没有对浮点数有个严格的数据类型,所以精度...

    Javascript浮点数乘积运算出现多位小数的解决方法

    主要介绍了Javascript浮点数乘积运算出现多位小数的解决方法,需要的朋友可以参考下

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    ASPNETValidator/CompareCheck.aspx 数据类型检查 ASPNETValidator/CompareValue.aspx 值比较验证 ASPNETValidator/CustomClient.aspx 自定义客户端验证 ASPNETValidator/CustomServer.aspx ...

    源文件程序天下JAVASCRIPT实例自学手册

    2.5 基本数据类型 2.5.1 Number型 2.5.2 String型 2.5.3 Boolean型 2.5.4 Undefined型 2.5.5 Null型 2.5.6 Function型 2.6 组合类型 2.6.1 Array型 2.6.2 Object型 2.7 运算符 2.7.1 赋值运算符 2.7.2 基本数学运算...

    客户端统一验证JavaScript函数库及示例源码

    ChkInputs.js应运而生,使用它不需要编写多少代码,只需对验证元素简单配置一下即可,使用方便,也不会影响页面的布局,并可以精确判断客户端输入框的长度、必填、数据类型(整数型、浮点型、字母型、数字字母混合型)...

    JavaScript基础和实例代码

    2.5 基本数据类型 2.5.1 Number型 2.5.2 String型 2.5.3 Boolean型 2.5.4 Undefined型 2.5.5 Null型 2.5.6 Function型 2.6 组合类型 2.6.1 Array型 2.6.2 Object型 2.7 运算符 2.7.1 赋值运算符 2.7.2 基本数学运算...

    JS小数运算出现多为小数问题的解决方法

    这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被成为双精度数值),为支持各种数据类型,ECMA-262定义了不同的数值面量格式。 十进制: var intNum=10; //整数 八进制: var octalNum1=070; ...

    100-days-of-code-days-1-through-10:我的100天代码挑战赛(第1天到第10天)中的项目

    100天的代码天1到10 我的100天代码挑战赛(第1天到第10天)中的项目 100天的代码-日志 ... 我专注于整数和浮点的数据类型以及使用操作顺序(EPMDAS)进行计算。 我还学习了f字符串,这是一种将带有

    php网络开发完全手册

    12.2 JavaScript的数据类型 183 12.3 JavaScript程序设计基础 184 12.3.1 在HTML中嵌入JavaScript 184 12.3.2 变量 185 12.3.3 注释 185 12.3.4 函数的定义与调用 186 12.3.5 条件语句 186 12.3.6 循环语句 189 12.3...

    跟我学习javascript的浮点数精度

    大多数编程语言都有几种数值型数据类型,但是JavaScript却只有一种。你可以使用typeof 运算符查看数字的类型。不管是整数还是浮点数,JavaScript都将它们简单地归类为数字。 typeof 17; //number typeof 98.6; //...

    freemarker总结

    方法变量通常是基于给出的参数计算值在数据模型中定义。 6、 用户自定义FTL指令:宏和变换器 7、 节点 节点变量表示为树型结构中的一个节点,通常在XML处理中使用。 在模板里对sequences和hashes初始化 ...

Global site tag (gtag.js) - Google Analytics