数字到字符串和字符串到数字
在计算机程序中数字的解析和格式化是非常普遍的工作,JS中提供了专门的函数和方法,用来做更加精确的数字到字符串和字符串到数字的转换
下面是一些方法/函数:
Number——请参看‘包装类、包装类对象、包装类的类型转换功能’
toString(radix)
除undefined与null外,其他类型都存在toString方法。这儿讲的是Number类中定义的toString方法,勿与其他类型的toString方法混淆
不指定radix参数时(默认模式),toString会将数据转换为十进制数
指定radix时(基模式),toString将数据转换为radix进制的数。如:
var n = 17;
binary_string = n.toString(2);//转换为2进制的10001
octal_string = '0' + n.toString(8);//转换为8进制的021
hex_string = '0x' + n.toString(16);//转换为16进制的0x11
toFixed(…)
该方法用于处理小数
作用是:保留参数指定的小数位数(会四舍五入,位数不足时补0),并以字符串形式返回处理结果。如:
var n = 123456.789;
n.toFixed(0);//'123457'
n.toFixed(2);//'123456.79'
n.toFixed(5);//'123456.78900'
parseInt(…, radix)
其是全局函数,不从属于任何包装类
第二个参数是基,指定第二个参数后,该方法会将第一个参数视为radix进制,最终转换为十进制输出;不设置radix时,直接将第一个参数以十进制输出
转换时注意以下几点:
会忽略若干前缀或后缀空格,因此字符串中的前缀或后缀空格不会对结果产生影响
如果字符串前缀是‘0x’或‘0X’,parseInt会将其视为16进制数
parseInt在进行处理时,会逐个查看字符串中的字符,直到遇见第一个非数字字符时为止,然后将第一个非数字字符前面的数字字符以number形式返回
var iNum1 = parseInt("12345red"); //返回 12345
var iNum1 = parseInt("0xA"); //返回 10
/*虽然没有指定基数,但是由形式知,会自动将其按16进制转换*/
var iNum1 = parseInt("56.9"); //返回 56
var iNum1 = parseInt("red"); //返回 NaN
var iNum1 = parseInt('qwe123');//返回NaN
var iNum1 = parseInt("AF", 16);/*返回 175,将第一个参数视为16进制数,然后转换为10进制*/
var iNum1 = parseInt("10", 2); //返回 2
var iNum2 = parseInt("10", 8); //返回 8
var iNum3 = parseInt("10", 10); //返回 10
parseFloat(…)
第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的。parseFloat() 会把这个小数点之前的字符转换成数字。这意味着字符串”11.22.33” 将被解析成 11.22
字符串必须以十进制形式表示浮点数,而不是用八进制或十六进制。该方法会忽略前导 0,所以八进制数 0102 将被解析为102。对于十六进制数 0xA,该方法将返回 NaN,因为在浮点数中,x 不是有效字符
- 该方法同样忽略前缀与后缀空格