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中浮点类型数据的计算 7.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字...
在JavaScript编程中,浮点数操作常常会遇到精度问题,因为JavaScript的Number类型在处理浮点数时并不总是精确的。这可能导致计算结果与预期有微小的差异,尤其是在涉及大数字或者进行多次运算时。"JS浮点数字操作...
在编程领域,数据类型的转换是不可或缺的一个环节,它涉及到如何在不同数据类型之间进行操作,以便于满足特定的计算或存储需求。数据类型是编程语言中定义变量的基础,不同的数据类型有不同的特性和用途。以下是对...
在探讨“mscrm数据类型操作”这一主题时,我们深入剖析了Microsoft Dynamics CRM(现称为Microsoft Dynamics 365)中的关键数据类型及其在JScript(JavaScript的一种变体,用于微软产品的脚本语言)中的应用。...
JavaScript(以下简称js)的数据类型主要可以分为两大类:原始类型和对象类型。原始类型包括数字、字符串和布尔值。其中,js有两个特殊的原始值:null(空)和undefined(未定义),它们并不属于数字、字符串和布尔...
在编程语言中,数据类型是极其基础且重要的概念,它定义了变量可以存储的数据种类以及相关的操作。在C#这门面向对象的编程语言中,数据类型分为两大类:基本数据类型和引用数据类型。本篇文章将深入探讨C#中的数据...
- 动态类型(Dynamic Typing):在运行时确定数据类型,如Python、JavaScript。编写代码更灵活,但可能导致运行时错误。 6. 常量与变量: - 常量(Constant):一旦声明就不能改变的值,如PI = 3.14159。 - 变量...
### C语言数据类型详解 #### 引言 C语言作为一种广泛应用的基础编程语言,其数据类型的设计与使用至关重要。本文将详细介绍C语言中的各种数据类型及其特点,帮助读者更好地理解和运用这些基本概念。 #### C语言...
第六课的数据类型主要涵盖了JavaScript中的基本数据类型,包括Undefined、Boolean、Number以及相关的数值转换。以下是这些知识点的详细说明: 1. **typeof 操作符**: `typeof` 是用于检测变量类型的运算符,返回...
实验要求编写程序来熟悉这些数据类型,并使用它们进行计算和输出。 变量的声明和使用范围是理解程序执行逻辑的关键。在实验的第二部分,我们学习了变量的作用域。例如,变量`i`在类级别上定义,可以在整个类中访问...
2. **避免浮点误差**:由于Decimal.js不依赖于JavaScript的Number类型,所以它能避免浮点数运算中的误差,保证了计算的精确性。 3. **丰富的数学运算**:Decimal.js 支持加法、减法、乘法、除法、指数、对数等基本...
在jQuery中,理解数据类型是非常基础且重要的,因为它们决定了变量如何存储和操作数据。以下是对jQuery涉及的数据类型的详细说明: 1. **String**(字符串) - 字符串是最常见的数据类型,用于存储文本信息。在...
在计算机科学中,大数是指超出普通整型或浮点型数据类型的数值。在易语言中处理大数,通常需要自定义数据结构和算法。大数乘方计算是大数运算的一种常见操作,例如,给定一个大数`a`和一个正整数`b`,计算`a`的`b`...
确保变量的数据类型符合预期是编程中的基本步骤,特别是在进行计算或与其他数据交互时。在C++中,可以使用`typeid`运算符或者`is_same`模板(C++11引入)来检查变量的数据类型。此外,对于整型、浮点型等数值类型,...
本文将对Java基础知识点进行总结,包括标识符、关键字、数据类型等。 1. 标识符的命名规则 在Java语言中,标识符是指变量、方法、类等名称。标识符的命名规则如下: * 由英文字母、数字、_和$组成,长度不限。 * ...
因此,在计算表达式时,如`'3'-1`,JavaScript会尝试将字符串转换为数值进行运算,结果为2,其数据类型为`number`。而表达式`'2a'/5`因为包含非数字字符,所以结果为`NaN`,数据类型仍为`number`。 通过`typeof`...
在Java编程语言中,数据类型是用来定义变量的类别,它们决定了变量可以存储的数据范围...选择合适的数据类型可以帮助节省内存,提高程序性能,并确保数值计算的精度。在编程时,应根据需求和性能要求谨慎选择数据类型。
根据文件【标题】和【部分内容】的描述,“js复习笔记.pdf”主要涉及JavaScript的基础知识点,包括语言规范、变量、常量、数据类型及其转换、运算符、流程控制等方面。以下是详细知识点梳理: 1. JavaScript语言...
【例3.2】强调了整型与浮点数据类型的转换。在Java中,整数除以整数会得到一个整数结果,丢弃小数部分。但当需要保留小数时,可以将整数强制转换为浮点类型。例如,例3.2中,变量a(int类型)除以b(int类型),结果...