标签:os java ar 数据 问题 sp c ef javascript
var floatnum = 3.1416e7;//等价于31416000
这里需要注意一点:永远不要用特定的浮点数值进行boolean判断。
var a=0.1,b=0.2;
a+b==0.3;//false
实际上a+b=0.30000000000000004;//浮点数最高经度是17位小数
因此,如果你的程序里写了诸如此类的判断条件 if(a+b==0.3){//dosomething()} 你极有可能得不到你想要的逻辑。
NaN——非数值(not a number)
- 任何涉及NaN的操作都会返回NaN,这个特点在多步计算中可能导致问题。
- NaN与任何值都不相等,包括NaN本身。为此ECMAScript定义了isNaN()函数。alert(isNaN(NaN));//true alert(isNaN(“aa”));//true alert(isNaN(10));//false alert(isNaN(“10”));//false alert(isNaN(true));//false 因为true能被转换为数值1
- 尽管有点儿不可思议,但是isNaN()确实也适用于对象。在基于对象调用isNaN()函数的时候,首先会调用对象的valueof()方法,然后确定该方法返回的值是否可以转换为数值。如果不能,则基于这个返回值调用toString()方法,在测试返回值。
有3个函数能将非数值转换为数值:Number(),parseInt(),parseFloat()
第一个Number()可以用于任何数据类型。后两个只适用于将字符串转换为数值。
Number()的转换规则是:
- 若是Boolean值,则true和false分别为1和0
- null转换为0
- undefined转换为NaN
- 字符串:字符串是空的将被转换为0,字符串包含其他无法转换的字符,将被转换为NaN
- 对象,将调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后继续根据前面的规则进行转换返回的字符串值。
标签:os java ar 数据 问题 sp c ef javascript
原文地址:http://www.cnblogs.com/kakuroseu/p/3971708.html