JavaScript数字类型及相关函数(方法)
由于最近经常用到JavaScript数字类型,并遇到了一些小问题,因此对JavaScript数字类型进行了详细的总结。
在JavaScript经常用到整型和浮点型,经常涉及的操作主要有将字符串转换为数字类型、判断是否数字类型、比较数值。下面列出了一组变量,以实例方式来说明JavaScript数字类型的特性及相关函数/方法的使用:
var int1 = 19; var float1 = 19.00; var str1 = '23.5word'; var str2 = 'wrod23.5'; var int2 = 1e+400; var int3 = -1e+400; var int4 = 1e+500; var int5 = 3.14159265358979323846264338327950288419; var int6 = 141592653589793238462;
JavaScript中只有浮点型
准确地说是JavaScript不区分整型和浮点型, 所有下面的比较返回结果都是true:
return int1 == float1;
return int1 === float1;
用parseInt与parseFloat转换数字类型
parseInt(s[,radix])将字符串转换为整型, s参数是将要转换的字符串,可选参数radix指定基数,默认为10或16进制,如果转换失败则返回NaN.
parseInt(str1);//返回23 parseInt(str2);//转换失败,返回NaN parseInt('10101', 2);//返回21, 将2进制10101转为10进制 parseInt("101014", 2));//21 parseInt("5101014", 2);//NaN parseInt('0xF');//返回15, 以0x开头时默认为16进制
parseFloat(s)将字符串转换为浮点型, 如果转换失败则返回NaN.
parseFloat(str1);//返回23.5 parseFloat(str2);//返回NaN
NaN不等于任何值,包括它自己
在一些情况下,表单中只允许用户输入整型,不能输入字母,因此需要转换并判断输入值是否大于0,如:
<input type="text" id="yourAge" name="age" />
var age = parseInt(jQuery("#yourAge").val());
但是当用户输入的是字母,转换时返回值将是NaN,这时就不能用==来作比较了, 因为NaN不等于任何值,包括其自己。JavaScript提供了isNaN()函数来判断是否是NaN.
isNaN(parseInt(str2)); //返回true
另外也可以用以下方法来比较:
parseInt(str2).toString() == 'NaN';//返回true
无限大的数值Infinity和无限小的值-Infinity
如果数值大于1.79769313486231570e+308将等于Infinity, 负数则为-Infinity.
int2 === Infinity;//返回true int2 === int4;//返回true
Number常用方法
Number.toFixed(d)用于限定小数点后的位数:
int5.toFixed(2);//3.14
Number.toExponential(d)格式化为指数形式,在指定小数点后的位数:
int6.toExponential(4);//1.4159e+20
Number.toPrecision(d)限定数字的有效数字:
int6.toPrecision(4);//1.416e+20