- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Number和String之间的互相转换</title>
- <script type="text/javascript">
- //将Number数字转换成String字符串
- //第一种方法是使用String()函数,该方法有局限性,即无法将某个数值转换成不同进制的,也无法选取有效数字等等
- var num = 123456.7897;
- var str = String(num);
- console.log("String(" + num + ") = " + str);
- //第二种方法是使用Number对象的toString()方法,toFixed()方法,toExponential()方法,toPrecision()方法
- //toString()方法默认将Number转换成十进制数
- str = num.toString();
- console.log(num + ".toString() = " + str);
- //toString(radix)方法可以带一个参数radix,表示将Number按照提供的进制转换,进制范围2-36,如果超出这个范围将报错。
- str = num.toString(2);
- console.log(num + ".toString(2) = " + str);
- //toFixed()方法,如果不提供参数的话默认是精确到个位,四舍五入法,不使用指数计数法
- str = num.toFixed();
- console.log(num + ".toFixed() = " + str);
- //toFixed(float)方法可以带一个参数,表示精确到小数点后面第几位,如果参数为0,和不提供参数功能相同
- str = num.toFixed(1);
- console.log(num + ".toFixed(1) = " + str);
- //toExponential方法,该方法使用指数计数法转换数值,小数点前只有一位,小数点后面的位数由参数指定,默认情况下不会截取位数
- str = num.toExponential();
- console.log(num + ".toExponential() = " + str);
- //toExponential方法带参数代表小数点后保留的位数
- str = num.toExponential(1);
- console.log(num + ".toExponential(1) = " + str);
- //toPrecision()方法按照参数指定的有效数字个数转换数值,默认不给参数的情况下保留所有有效数字位
- str = num.toPrecision();
- console.log(num + ".toPrecision() = " + str);
- //toPrecision()可以带一个参数,代表有效数字位数,如果该位数小于原数的整数部分位数,则用指数形式表示,否则用非指数形式。
- str = num.toPrecision(6);
- console.log(num + ".toPrecision(6) = " + str);
- //将String字符串转换成Number也有两种方式
- //第一种方式仍然使用显示转换函数Number,可以转换整数和浮点数,但是这种方法不允许待转换的字符串中出现任何非法字符,包括空格,如果存在非法字符,将得到结果NaN。
- str = "12 3";
- num = Number(str);
- console.log("Number(" + str + ") = " + num);
- //第二中方式是使用全局函数parseInt()和parseFloat()
- //parseInt()方法只能解析整数,会忽略所有的前导空白字符,直到解析到某个非法非空白字符为止,小数点在parseInt()被认为是非法字符,如果中间出现空格,也会被认为是非法字符。
- str = "a .1 1.8";
- num = parseInt(str);
- console.log("parseInt(" + str + ") = " + num);
- //parseInt()方法的第二个参数是进制,默认情况下回以十进制去解析。
- str = "0xff";
- num = parseInt(str, 16);
- console.log("parseInt(" + str + ",16" + ") = " + num);
- //parseFloat()方法可以解析整数和浮点数,它会将小数点解析成合法字符,如果第一个字符就是小数点,则会被解析成0.xxx,但是parseFloat()方法不能更换进制 ,得明确告诉它是多少进制,比如十六进制加0x,实践证明,明确告诉也没用
- //0xff会被解析成0...,parseInt()方法带不带第二个参数都能解析成255
- str = "0xff";
- num = parseFloat(str);
- console.log("parseFloat(" + str + ") = " + num);
- </script>
- </head>
- <body>
- </body>
- </html>
http://blog.csdn.net/dc15822445347/article/details/23288367