在前端开发的过程中,需要用到很多关于数值转换的函数,来将得到的字符串或者数值进行处理。如将一个浮点数转换为整数;将一个整数转换为浮点数;将一段字符串转换为数值;将一个浮点数转换为小于它的最小整数或者保留几个小数等。
参考网上的一些资料,也结合自己平时的开发,粗略介绍一下一些常用的数值转换函数。
首先对所要讲的数值转换函数做一个列表:Number(),parseInt(),parseFloat(),Math.ceil(),Math.floor(),Math.round(),toFixed()等。
下面就逐一介绍各个函数的用法:
Number()函数:
用new Number(num);创建一个Number对象,传入的num参数可以是一个Date对象、Boolean值、数字值或者是字符串等等。
当传入的参数是Date对象时,将返回从1970年1月1日至今的毫秒数;
当传入一个Boolean值true或false时,将返回一个数字0或1;
当传入一个数值时,返回的也将是该数值;
当传入null值时,返回的将是0;
当传入undefined时,返回的将是NaN;
当传入一个字符串时:1.字符串只包含数字(包括八进制格式0,十六进制格式0x),返回的将是一个数值;2.如果传入的字符串为空,将返回0;3.如果字符串不全为数字,将返回NaN;
document.write(Number(new Date())+'<br/>');//返回从1970年1月1日至今的毫秒数
document.write(Number(false)+'<br/>');//返回0,如果是true,将返回1
document.write(Number(123)+'<br/>');//返回数值123
document.write(Number(null)+'<br/>');//返回0
document.write(Number(undefined)+'<br/>');//返回NaN
document.write(Number('123')+'<br/>');//返回123
document.write(Number(0123)+'<br/>');//返回十进制83
document.write(Number('0x12')+'<br/>');//返回十进制18
document.write(Number('y123')+'<br/>');//返回NaN
parseInt()函数:
parseInt函数将传入的字符串或者数值转换为整数:1.当传入整数时,返回一个整数;2.当传入一个浮点数时,小数点及小数将被去掉,返回一个整数;3.当传入一个字符串时,如果字符串以字符开头,则返回NaN;如果字符串以数值开头,则返回该数值;4.当传入的是八进制或者十六进制数时,返回相应的十进制数。
document.write(parseInt(123)+'<br/>');//返回123
document.write(parseInt(0123)+'<br/>');//这是一个八进制数,返回十进制数83
document.write(parseInt(0x123)+'<br/>');//这是一个十六进制数,返回十进制数291
document.write(parseInt(123.23)+'<br/>');//返回123
document.write(parseInt('y123')+'<br/>');//返回NaN
document.write(parseInt('123y')+'<br/>');//返回123
document.write(parseInt('123y123')+'<br/>');//返回123
与Number不同的是,都传入一个字符串时,如果字符串中有字符,并且以数值开头,Number返回NaN,而parseInt返回该数值。
document.write(parseInt('123y')+'<br/>');//返回123parseFloat函数:
document.write(Number('123y')+'<br/>');//返回NaN
parseFloat函数与parseInt函数的用法类似
document.write(parseFloat(123.23)+"<br/>");//返回123.23Math.ceil()函数:
document.write(parseFloat(0123)+"<br/>");//返回十进制数83
document.write(parseFloat(0x123)+"<br/>");//返回十进制数291
document.write(parseFloat("y123.23")+"<br/>");//返回NaN
document.write(parseFloat("123.23y123")+"<br/>");//返回123.23
Math.ceil()函数返回大于传入值的最小值。如果传入123.23,则返回124。
Math.floor()函数:
Math.floor()函数返回小于传入值得最大值。如果传入123.23,则返回123。
Math.round()函数:
Math.round()函数返回与传入值最接近的值。如果传入123.23,则返回123;如果传入123.55,则返回124。
toFixed()函数:
toFixed(num)函数给某个数值设置保留几位小数。
var number=123.23;以上是对JavaScript数值转换函数的一些简单总结,在以后的工作学习中还将不断完善。
document.write(number.toFixed(1)+"<br/>");//返回123.2
document.write(number.toFixed(3)+"<br/>");//返回123.230