作者主页:myvin
博主QQ: 851399101 (点击QQ和博主发起临时会话)
接着上一篇 盗“书”笔记——JavaScript Notes(二) 聊。
ecmascript中,浮点数值的最高精度是17位小数,但是在算数计算时精度还是远不如整数。
因为浮点运算会出现舍入不准的问题,所以千万不要测试某个特定的浮点数值。看下面的例子:
console.log(0.1+0.2)
打印出来的结果是:
0.30000000000000004
所以千万不要出现诸如这样的测试:
if(a+b==0.3)
关于浮点计算造成这样的原因需要说明一下:
浮点计算会出现误差的问题,是因为ecmascript的浮点计算是基于IEEE754数值的浮点计算的通病,只要是使用该数值格式的语言都有此问题。
ecmascript中,数值的范围是 Number.MIN_VALUE
到 Number.MAX_VALUE
。我们可以打印出来看看结果:
console.log(Number.MIN_VALUE) 5e-324 console.log(Number.MAX_VALUE) 1.7976931348623157e+308
这个数值范围应该足以我们用了。如果超出了这个范围就会输出 Infinity
,负数的话就是 -Infinity
, Number.POSITIVE_INFINITY
和 Number.NEGATIVE_INFINITY
也分别指的是 Infinity
和 -Infinity
。
关于Number的数值转换的函数有三个:
其中, Number()
函数规则比较繁琐,且转换规则不够合理,所以较常用的是 parseInt
和 parseFloat
, parseInt
和 parseFloat
是专门用于把字符串转换为数值的。
parseInt
从字符串的开始解析,一直解析到无效的数字字符停止,建议使用时指定转换基数;
parseFloat
从字符串的开始解析,一直解析到无效的浮点字符,因为该函数只解析十进制,所以也没有指定转换基数只一说。
把一个值转换为字符串可以用 toString
方法,数值。布尔值。对象和字符串都有该方法, null
和 undefined
没有该方法。所以,在无法判断需要转换的值是否为 null
或 undefined
的时候,可以使用转型函数 String()
。关于 String()
函数的转换规则如下:
toString()
方法,则调用该方法,是不带参数的调用 null
,则返回 null
undefined
,则返回 undefined
还有一点需要注意:
value.toString(); String(value);
分别调用的格式如上。
转载请记得说明作者和出处哦-.-
作者:myvin
原文出处: http://www.cnblogs.com/myvin/p/4730029.html