【Javascript基础】Number

来源:互联网 发布:南京网博java培训费用 编辑:程序博客网 时间:2024/05/21 08:59

Number

根据标准的定义,Javascript中的数值是采用IEEE 754中的双精度64位格式, 这样的编码会导致一些有趣的结果,在Javascript中没有整数类型的概念,所以当你在进行数值计算的时候要格外的小心,例如,下面就是简单的示例:

0.1 + 0.2 = 0.30000000000000004

在实际应用中,整数的数值可以被当做是32位的int类型来看待,这里注意了我们描述是整数的数值,并非整形,把整数的数值看做32位的目的是可以理解位运算.

Number对标准的算术计算都支持的,这包括加法、减法、模运算以及其他的,这里还存在一个我们忘记提及的内置对象,它就是Math,它提供了很多高级的算术计算的方法和常量.

Math.sin(3.5)var circumference = Math.PI * (r * r);

我们可以使用内置的parseInt()方法来实现将数值字符串转换为整数的功能,该方法可以接收一个可选的第二个参数,该参数用来指定待转数值字符串的进制.

parseInt('123', 10);//结果是:123,这里的第二个参数设置待转数值字符串是十进制数字parseInt('010', 2);//结果是:2, 这里的第二个参数设置待转数值字符串是二进制数字

相似地,你可以使用parseFloat()方法来解析浮点数值,不同于parseInt()方法,parseFloat()只有一个参数,它的进制一直都是十进制的.

你还可以使用一元操作符+来实现数值字符串到数字的转换

+ "42"; //42+ "010"; //10+ "0x10"; //16

如果待转换的字符串并不是一个数值,例如hello, 这时会返回有一个特殊的值–NaN(“Not a Number”的简写形式)

parseInt('hello', 10);//NaN

Javascript还存在一个内置方法–isNaN(), 该方法用来检验值是否为NaN,

isNaN(NaN);//true;isNaN(1);//false;isNaN('hello');//true;

Javascript还有两种特殊的值,Infinity-Infinity,分别代表正无穷大负的无穷大.例如:

1 / 0; //Infinity-1 / 0; //Infinity

Javascript也提供一个内置方法isFinite()方法,用来校验数值是否是有限数值,例如:

isFinite(1/0);//falseisFinite(-Infinity);//falseisFinite(NaN);//falseisFinite(1);//true

注意:
parseInt()和parseFloat()方法解析字符串时,会在遇到无法构成有效数值的时候终止解析,例如:

parseInt('123abc');//这里的返回值是: 123, 当解析到第四个字符串时, 'a'并不能和前面解析好的数值一起构成有效的数值,所以解析停止,返回已经解析到的结果。

然而,通过+运算符来实现转化,则要求整个数值字符串本身就是一个有效的数值,如果不是直接返回NaN,例如:

+ "123abc";//返回: NaN

原文: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript#Numbers

0 0
原创粉丝点击