`
haibin369
  • 浏览: 59728 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于JavaScript的数值

阅读更多

一、无穷

      在JavaScript中,当数值远远大于其能表示的最大值(1.7976931348623157e+308)时,就会表示成Infinity / -Infinity(正无穷/负无穷),此外,在JavaScript中除数为0的结果并不会报错,其结果也会是Infinity。另外,在JavaScript中0有+0(通常的0)和-0(负0)之分,虽然他们在值上都是0。

var maxNum = Number.MAX_VALUE;
alert(maxNum);                      //Number所能表示的最大数值:1.7976931348623157e+308
alert((maxNum + 9e+100) == maxNum); //true,因为此时已经达到最大值,所以前者的9e+100已经被忽略了
alert((maxNum + 1e+292) == maxNum); //false,因为前者已经是Infinity。
                                    //具体是不是加上1e+292就成无穷大不太清楚,这只是粗略测试的值
alert(maxNum + 1e+292);             //Infinity

var minNum = Number.MIN_VALUE;
alert(minNum);                        //Number所能表示的最接近0的正数:5e-324
alert(minNum/2);                      //0,因为已经小于Number所能表示的最小数了

alert(typeof(Infinity));              //Number
alert(typeof(-Infinity));             //Number

alert(+0 == -0);                      //true,值都为0
alert(1/0);                           //Infinity,不会报错
alert(1/-0);                          //-Infinity,不会报错
alert(0/0);                           //NaN,不会报错

//isFinite()函数可以判断参数是否为有限的数值
alert(isFinite(Infinity));            //false
alert(isFinite(-Infinity));           //false
alert(isFinite(123));                 //true
alert(isFinite("123"));               //true,数值型字符串会被转换成数字
alert(isFinite("1a3"));               //false

 

二、NaN

      NaN表示Not a Number(不是一个数值)。我们不能使用“==”将它与任何变量相比较,因为这样的结果总是为false,包括与自身的比较。因此不能通过与NaN的比较判断一个变量是否为数值,而要通过isNaN()函数。

alert(typeof(NaN));			//Number
alert(NaN == NaN);			//false
alert("abc" == NaN);		//false
			
alert(isNaN(123));			//false
alert(isNaN("123"));		//false,数值型字符串会转换成数字
alert(isNaN(NaN));			//true
alert(isNaN("abc"));		//true
alert(isNaN(Infinity));		//false

 

三、浮点数的精度误差

      JavaScript中使用是IEEE-754浮点数运算标准,其存在精度误差,在某些情况下,它不能绝对精确地表示一些在我们看来非常简单的数值(例如0.1)。

var n = 0.3-0.2;
var m = 0.2-0.1;
alert(n);   //结果为0.09999999999999998
alert(m);   //结果为0.1

 

 

 

 

 

 

 

 

 

 

2
0
分享到:
评论
2 楼 haibin369 2012-01-31  
greatghoul 写道
那如何避免精度误差呢?

这个嘛,估计最直接的就是先乘一个系数把操作数都放大,运算完之后再做相应的缩小。
1 楼 greatghoul 2012-01-31  
那如何避免精度误差呢?

相关推荐

    JavaScript数值类型知识汇总

    JavaScript是一种广泛使用的前端编程语言,其数值类型是编程中不可或缺的部分。了解JavaScript的数值类型对于编程人员来说是非常重要的,它有助于编写正确和高效的代码。 首先,JavaScript中的数值类型主要分为整数...

    JavaScript中的数值范围介绍

    以下是关于JavaScript数值范围和特性的详细说明: 1. **数值范围**: - **最大值**:JavaScript可以表示的最大数值是`Number.MAX_VALUE`,大约是1.7976931348623157乘以10的308次方。 - **最小值**:最小的可表示...

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

    在JavaScript编程语言中,数值型数据类型是程序设计的基础元素之一。它涵盖了整数和浮点数,这两种类型的数值在各种计算和逻辑操作中都扮演着关键角色。本课件将深入探讨JavaScript中的数值型数据类型及其相关特性。...

    javascript将非数值转换为数值.docx

    JavaScript 是一种广泛使用的脚本语言,特别是在Web开发中,它提供了丰富的功能,其中包括将非数值类型的数据转换为数值类型的能力。在JavaScript中,有三种主要的方法可以实现这种转换:Number()、parseInt() 和 ...

    阮一峰JavaScript教程.pdf

    * 数值的类型和操作 * 字符串的类型和操作 * 对象的类型和操作 * 数组的类型和操作 函数 * 函数的定义和调用 * 函数的参数和返回值 * 函数的高阶函数和回调函数 * 函数的闭包和柯里化 对象 * 对象的定义和使用 *...

    javascript 实现网页 倒计时 代码

    在JavaScript中实现网页倒计时是一项常见的任务,尤其在创建活动页面、竞赛倒计时或者定时发布内容等场景中非常实用。本篇文章将详细介绍如何利用JavaScript编写一个网页倒计时功能,并结合提供的`index.html`和`js`...

    Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)_.docx

    Javascript 将数值转换为金额格式(分隔千分位和自动增加小数点) 在本文中,我们将讨论如何使用 Javascript 将数值转换为金额格式,包括分隔千分位和自动增加小数点。这种格式通常用于会计记账和财务报表中。 知识...

    javascript课程内容总结

    在 JavaScript 中,数据类型包括字符串(string)、数值型(number)、布尔型(boolean)、null、undefined 和对象(object)。其中数组(array)属于对象,判断数据类型需要使用 typeof() 函数。 变量 变量的命名...

    javascript

    在给定的文件内容中,我们可以提取到关于JavaScript的多个知识点: 1. JavaScript的变量类型:JavaScript中主要有几种基本的变量类型,包括字符串、整型、浮点型、布尔型、数组、对象、JSON对象、NaN、null和...

    javascript学习javascript资料

    JavaScript支持自动数据类型转换,比如在使用加法运算符(+)时,如果一个操作数是字符串,另一个是数值,JavaScript会自动将数值转换为字符串。例如,`"我今年" + 18`将得到结果`"我今年18"`。相反,如果使用其他...

    李立超JavaScript基础篇笔记

    JavaScript有六种基本数据类型:String(字符串)、Number(数值)、Boolean(布尔值)、Null(空值)、Undefined(未定义)和Object(对象)。这些类型构成了JS编程的基础,理解和掌握它们是学习JavaScript的第一步...

    JavaScript讲义.ppt

    JavaScript还支持自动数据类型转换,例如在使用加法运算符"+"时,如果操作数之一是字符串,另一个是数值,JavaScript会将数值转换为字符串;而在其他运算符下,它会尝试将字符串转换为数值。这些特性使得JavaScript...

    JavaScript标准参考教程(alpha)

    第五章“数值”和第六章“对象”分别介绍了在JavaScript中如何处理数值和对象。数值章节中讲解了数值的表示方法、NaN、Infinity、parseInt和parseFloat等方法。对象章节中讲述了对象的生成、属性的读取和修改、属性...

    这个Javascript包实现了一些基本的数值优化算法

    这个Javascript包实现了一些基本的数值优化算法。包括: Nelder-Mead, Gradient Descent, Wolf Line Search and Non-Linear Conjugate Gradient 方法。

    JavaScript基础知识例子

    这个压缩包文件“JavaScript基础知识例子.zip”包含了多个HTML文档,每个文档详细介绍了JavaScript的基础知识,特别是关于数据类型、Object类型以及内置对象的概念。 首先,让我们深入探讨JavaScript的数据类型。在...

Global site tag (gtag.js) - Google Analytics