作者主页: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
还有一点需要注意:
toString()
是方法,String()
是函数,所以调用方法是不一样的**
value.toString();
String(value);
分别调用的格式如上。
转载请记得说明作者和出处哦-.-
作者:myvin
原文出处:http://www.cnblogs.com/myvin/p/4750957.html