`
lizaochengwen
  • 浏览: 659632 次
  • 性别: 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  怎么会这样,两个只有一位小数的数字...

    JS浮点数字操作插件floatOPS.js

    在JavaScript编程中,浮点数操作常常会遇到精度问题,因为JavaScript的Number类型在处理浮点数时并不总是精确的。这可能导致计算结果与预期有微小的差异,尤其是在涉及大数字或者进行多次运算时。"JS浮点数字操作...

    数据类型的转换数据类型的转换

    在编程领域,数据类型的转换是不可或缺的一个环节,它涉及到如何在不同数据类型之间进行操作,以便于满足特定的计算或存储需求。数据类型是编程语言中定义变量的基础,不同的数据类型有不同的特性和用途。以下是对...

    mscrm数据类型操作

    在探讨“mscrm数据类型操作”这一主题时,我们深入剖析了Microsoft Dynamics CRM(现称为Microsoft Dynamics 365)中的关键数据类型及其在JScript(JavaScript的一种变体,用于微软产品的脚本语言)中的应用。...

    简单谈谈js的数据类型

    JavaScript(以下简称js)的数据类型主要可以分为两大类:原始类型和对象类型。原始类型包括数字、字符串和布尔值。其中,js有两个特殊的原始值:null(空)和undefined(未定义),它们并不属于数字、字符串和布尔...

    【C# 基础精讲】C# 数据类型概述

    在编程语言中,数据类型是极其基础且重要的概念,它定义了变量可以存储的数据种类以及相关的操作。在C#这门面向对象的编程语言中,数据类型分为两大类:基本数据类型和引用数据类型。本篇文章将深入探讨C#中的数据...

    程序设计-我们的数据类型.pptx

    - 动态类型(Dynamic Typing):在运行时确定数据类型,如Python、JavaScript。编写代码更灵活,但可能导致运行时错误。 6. 常量与变量: - 常量(Constant):一旦声明就不能改变的值,如PI = 3.14159。 - 变量...

    C学习文档资料:C语言数据类型大全文档介绍

    ### C语言数据类型详解 #### 引言 C语言作为一种广泛应用的基础编程语言,其数据类型的设计与使用至关重要。本文将详细介绍C语言中的各种数据类型及其特点,帮助读者更好地理解和运用这些基本概念。 #### C语言...

    第六课 数据类型1

    第六课的数据类型主要涵盖了JavaScript中的基本数据类型,包括Undefined、Boolean、Number以及相关的数值转换。以下是这些知识点的详细说明: 1. **typeof 操作符**: `typeof` 是用于检测变量类型的运算符,返回...

    实验Java基数据类型与控制语句.doc

    实验要求编写程序来熟悉这些数据类型,并使用它们进行计算和输出。 变量的声明和使用范围是理解程序执行逻辑的关键。在实验的第二部分,我们学习了变量的作用域。例如,变量`i`在类级别上定义,可以在整个类中访问...

    decimaljsJavaScript的任意精度Decimal类型

    2. **避免浮点误差**:由于Decimal.js不依赖于JavaScript的Number类型,所以它能避免浮点数运算中的误差,保证了计算的精确性。 3. **丰富的数学运算**:Decimal.js 支持加法、减法、乘法、除法、指数、对数等基本...

    jQuery数据类型[归类].pdf

    在jQuery中,理解数据类型是非常基础且重要的,因为它们决定了变量如何存储和操作数据。以下是对jQuery涉及的数据类型的详细说明: 1. **String**(字符串) - 字符串是最常见的数据类型,用于存储文本信息。在...

    易语言JS100000大数乘方计算源码

    在计算机科学中,大数是指超出普通整型或浮点型数据类型的数值。在易语言中处理大数,通常需要自定义数据结构和算法。大数乘方计算是大数运算的一种常见操作,例如,给定一个大数`a`和一个正整数`b`,计算`a`的`b`...

    几个字符串遍历判断,数据类型合法性,取值范围判断

    确保变量的数据类型符合预期是编程中的基本步骤,特别是在进行计算或与其他数据交互时。在C++中,可以使用`typeid`运算符或者`is_same`模板(C++11引入)来检查变量的数据类型。此外,对于整型、浮点型等数值类型,...

    Java基础-标识符、关键字、数据类型练习题.doc

    本文将对Java基础知识点进行总结,包括标识符、关键字、数据类型等。 1. 标识符的命名规则 在Java语言中,标识符是指变量、方法、类等名称。标识符的命名规则如下: * 由英文字母、数字、_和$组成,长度不限。 * ...

    JavaScript学习笔记.docx

    因此,在计算表达式时,如`'3'-1`,JavaScript会尝试将字符串转换为数值进行运算,结果为2,其数据类型为`number`。而表达式`'2a'/5`因为包含非数字字符,所以结果为`NaN`,数据类型仍为`number`。 通过`typeof`...

    JAVA常见数类型大小.docx

    在Java编程语言中,数据类型是用来定义变量的类别,它们决定了变量可以存储的数据范围...选择合适的数据类型可以帮助节省内存,提高程序性能,并确保数值计算的精度。在编程时,应根据需求和性能要求谨慎选择数据类型。

    js复习笔记.pdf

    根据文件【标题】和【部分内容】的描述,“js复习笔记.pdf”主要涉及JavaScript的基础知识点,包括语言规范、变量、常量、数据类型及其转换、运算符、流程控制等方面。以下是详细知识点梳理: 1. JavaScript语言...

    陈国君Java题代码.doc

    【例3.2】强调了整型与浮点数据类型的转换。在Java中,整数除以整数会得到一个整数结果,丢弃小数部分。但当需要保留小数时,可以将整数强制转换为浮点类型。例如,例3.2中,变量a(int类型)除以b(int类型),结果...

Global site tag (gtag.js) - Google Analytics