`
haibin369
  • 浏览: 58500 次
  • 性别: 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将非数值转换为数值.docx

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

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

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

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

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

    javascript 实现网页 倒计时 代码

    javascript 实现网页 倒计时 代码

    javascript从入门到精通PPT

    全书共分24章,包括初识JavaScript、JavaScript基础、流程控制、函数、JavaScript对象与数组、字符串与数值处理对象、正则表达式、程序调试与错误处理、事件处理、处理文档(document对象)、文档对象模型(DOM对象...

    javascript入门经典第6版

    资源名称:...第二部分“Javascript编程”,包括第4章到第7章,介绍了Javascript的数据类型,例如数值、字符串和数组;以及较为复杂资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

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

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

    kmath:JavaScript数值数学实用程序

    Javascript数值数学实用程序 概述 kmath是Javascript实用程序函数的集合,用于执行Javascript中未内置的数字(而不是代数)数学,尤其是几何计算。 例如,某些计算很容易使用矢量来表达,但是很难用原始实数变量来...

    javaScript 数值型和字符串型之间的转换

    javaScript 数值型和字符串型之间的转换

    javascript版BigDecimal类库

    javascript的数值精确计算类bigdecimal,改编自java的bigdecimal

    JavaScript中的数值范围介绍

    主要介绍了JavaScript中的数值范围介绍,本文是对JavaScript中Number类型的追根究底,读完本文将会对Number类型有一个彻底了解,需要的朋友可以参考下

    Javascript 生成指定范围数值随机数

    不过经过俺的小小努力之后, 终于让俺摸着门道喽, 问题也就理所当然滴解决掉. 然后就写了个公式, 这样应该可以消失掉这个用法了, 公式: 1. 从1开始 至 任意值 linenum parseInt(Math.random()*上限+1);...

    JavaScript 动态网页实例 - 数值处理对象.rar

    其属性是数学中一些常见的常数值,在程序中可以直接使用。Math对象的方法很多,主要完成一些常见的数学运算,如三角函数计算、乘方、开方、求对数等。在 Math 对象的方法中,除了random()之外的所有方法都需要一个或...

    常用javascript整理

    1.JavaScript的数值处理对象学习 .txt 2.JavaScript的系统函数学习 .txt 3.js中用于对象的语句——with和for...in语句学习专题.txt 4.smallSoftkey小软键盘,大键盘 5.window.open参数详解 .txt 6....

    html+css+javascript 教程

    Hyper Text Markup Language 超文本 (文字+图片+音视+链接…) 标记语言 (浏览器根据标记显示内容) 来自于SGML(标准通用标记语言) ... //数值型变量 y=“4321”; //字符型变量 代码格式不一样 嵌入方式不一样

    javascript经典特效---猜一个数值.rar

    猜一个数值.rar猜一个数值.rar猜一个数值.rar猜一个数值.rar猜一个数值.rar猜一个数值.rar

    JavaScript数值转换的三种方式总结

    在JavaScript中,数值转换一般有三种方式: 一、Number(param)函数:param可以用于任何数据类型 1.1 param是Boolean值,true和false分别转换为1和0; 1.2 param是数值,只是简单的传入和返回 1.3 param是null和...

    javascript将非数值转换为数值

    parseInt()不能转换浮点型数值,我们用parseFloat()来解决。这篇文章主要介绍了javascript将非数值转换为数值,需要的朋友可以参考下

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

    源文件程序天下JAVASCRIPT实例自学手册 第1章 JavaScript语言概述 1.1 JavaScript是什么 1.1.1 JavaScript简史 1.1.2 JavaScript有何特点 1.2 JavaScript能做什么 1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 ...

Global site tag (gtag.js) - Google Analytics