javascript基础知识梳理-Number与String之间的互相转换

来源:互联网 发布:mac层和物理层区别 编辑:程序博客网 时间:2024/05/21 09:39
<!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()方法带不带第二个参数都能解析成255str = "0xff";num = parseFloat(str);console.log("parseFloat(" + str + ") = " + num);</script></head><body></body></html>

0 0
原创粉丝点击