JS中Number()、parseInt()和parseFloat()的区别
声明:本文不公开,作者只是为了让自己看到这些代码后可以一目了然的知道代码的用处所写的文档
文章摘抄自:https://blog.csdn.net/m0_38099607/article/details/72638678
三者的作用:
- Number(): 可以用于任何数据类型转换成数值。
- parseInt(45.56) 函数可解析一个字符串,并返回一个整数。
- parseFloat(‘45.56’): 函数可解析一个字符串,并返回一个浮点数。
- NumberObject.toFixed(num) 方法可把 Number 四舍五入为指定小数位数的数字(字符型)。
- Math.round() 方法可把一个数字舍入为最接近的整数:
注意:parseFloat和Number,如果是转换45.00时会去掉小数位的00,toFixed会保留小数后的00,toFixed返回的是字符型。
一、Number( ):
可以用于任何数据类型转换成数值。
var num1=Number("Hello World"); //NaN
var num2=Number(""); //0
var num3=Number("000011"); //11
var num4=Number(true); //1
var num5=Number("num123") //NaN
二、parseInt( ):
parseInt()函数可以将字符串转换成一个整数,与Number()函数相比,parseInt()函数不仅可以解析纯数字字符串,也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。
(1)如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN; 也就是说,用parseInt()转换空字符串会返回NaN。
(2)如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。
(3)如果字符串以”0x”开头且后跟数字字符,就会将其当作一个十六进制整数。
(4)parseInt()函数增加了第二参数用于指定转换时使用的基数(即多少进制)。
(5) 默认是10进制为基数。
var num1=parseInt("num123"); //NaN
var num2=parseInt(""); //NaN
var num3=parseInt("123.45") //123
var num4=parseInt("101010",2) //42 2进制转换成10进制
var num5=parseInt("123num") //123
var num5=parseInt("123") //123
var num6=parseInt("123",8) //83 8进制转换成10进制
var num7=parseInt("0xff") //255 16进制转换成10进制
var num8=parseInt("0123") //123 会省略前面的0
三、parseFloat( ):
函数可解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
var num1=parseFloat("1234blue"); //1234
var num2=parseFloat("0xA"); //0
var num3=parseFloat("0908.5"); //908.5
var num4=parseFloat("3.125e7"); //31250000 ?这个为什么是这个值,暂时还没有搞懂
var num5=parseFloat("123.45.67") //123.45
var num6=parseFloat("") //NaN
var num7=parseFloat("num123") //NaN
注意 parseFloat且仅能处理10进制字符串。