toFixed()根据小数点后的指定位数将数字转换为字符串,它从不使用指数计数法;
toExponential()使用指数计数法将数字转换为指数形式的字符串,其中小数点前只有一位,小数点后的位数则由参数指定(也就是说有效数字位数比指定的位数要多一位);
toPrecision()根据指定的有效数字位数将数字转换成字符串,如果有效数字的位数少于数字整数部分的位数,则转换成指数形式。
这三种方法都会适当的进行四舍五入或填充0。
例:
var n = 123456.789;
n.toFixed(0); //"123457"
n.toFixed(2); //"123456.79"
n.toFixed(5); //"123456.78900"
n.toExponential(1); //"1.2e+5"
n.toExponential(3); //"1.235e+5"
n.toPrecision(4); //"1.235e+5"
n.toPrecision(7); //"123456.8"
n.toPrecision(10); //"123456.7890"
另:如果通过Number()转换函数传入一个字符串,它会试图转换为一个整数或浮点数直接量,这种方法只能基于十进制转换,且不能出现非法的尾随字符;parseInt()函数和parseFloat()函数(它们是全局函数,不从属于任何类的方法)更灵活,前者这解析整数,而后者可解析整数和浮点数。parseInt()和parseFloat()都会跳过任意数量的前导空格,尽可能解析更多数值字符,并忽略后面的内容,如果第一个非空格字符是非法的数字直接量,将最终返回NaN:
parseInt("3 blind mice") // =>3
parseFloat("3.14 meters") // =>3.14
parseInt("-12.34") // =>-12
parseInt("0xFF") // =>255
parseInt("0xff") // =>255
parseInt("-0xff") // =>-255
parseFloat(".1") // =>0.1
parseInt("0.1") // =>0
parseInt(".1") // =>NaN:整数不能以.开头
parseFloat("$72.47") // =>NaN:数字不能以$开头
parseInt()可以接受第二个可选参数,这个参数指定数字转换的基数,合法的取值范围是2~36;如:
parseInt("11",2); // => 3(2进制)
parseInt("ff",16); // =>255(16进制)