JavaScript实验:number转换成string

在JavaScript的值类型转换中,最常发生的就是string与number这两种类型值之间的相互转换。

可以通过调用number值的4个函数(事实上,是JS将number值自动转化为Number对象后,Number类的4个函数)来将其转换成string:

  1. toString()。
  2. toFixed()。
  3. toExponential()。
  4. toPrecision()。

toString()

可以在number值上调用toString()方法来将其转换成字符串。toString()函数接受一个2到36之间的正整数作为参数,其作用为定义数值的进制数;如果该参数缺失,那么toString()函数就以10进制来表示相应的数值。

var a = 42;  
console.log(a.toString(2));//101010  
console.log(a.toString());//42  
console.log("0x" + a.toString(16));//0x2a

var b = 0xff;  
console.log(b.toString());//255  

toFixed()

toFixed()函数接受一个整数作为参数,参数作用为指定小数点后的精确位数。toFixed()函数所接受的参数还可以是负数(虽然使用情况较少),当参数为负数时,数值的整数部分将损失精度。在使用toFixed()函数对数值进行调整时,JavaScript遵循的是四舍五入的原则。

var x = 17.38;  
console.log(x.toFixed(0));//17  
console.log(x.toFixed(1));//17.4  
console.log(x.toFixed(4));//17.380  
console.log(x.toFixed(-1));//20  

toExponential()

可以使用toExponential()函数来将数值转换成用科学计数法来表示。toExponential()函数接受一个非负整数为参数(如果此参数为负数,则抛出RangeError),作为科学计数法的精度。与toFixed()函数一样,toExponential()函数对数值进行调整时遵循四舍五入原则。

var y = 17951.38596  
console.log(y.toExponential(1));//1.8e+4  
console.log(y.toExponential(0));//2e+4  

toPrecision()

toPrecision()函数接受一个正整数作为参数(如果参数为0或者负数,程序将抛出RangeError),并将其作为数值的精确位数(包括整数部分和小数部分在内),如果该精确位数小于数值的整数部分位数,那么数值将转换成用科学计数法来表示。与toFixed()函数一样,toPrecision()函数对数值进行调整时遵循四舍五入原则。

var z = 17951.38596;  
console.log(z.toPrecision(8));  
console.log(z.toPrecision(3));  

本文实验代码: http://jsfiddle.net/cshao/Cv9qt/