取整:
向下取整Math.floor(),向上取整Math.ceil(),四舍五入Math.round()),保留有效数位n.toFixed(),产生大于等于0小于1的随机数Math.random()
功能 | 函数 | 示例 | |
整型 | 向下取整 | Math.floor() | Math.floor(1.1)==>1 |
向上取整 | Math.ceil() | Math.ceil(1.1) ==>2 | |
四舍五入 | Math.round() | Math.round(1.1)==>1 | |
Math.round(1.6)==>2 | |||
浮点型 | 保留有效数位 | n.toFixed() | 1.442.toFixed(2)==>1.44 |
1.446.toFixed(2)==>1.45 | |||
随机数 | Math.random() | Math.random()==>0.38078270980122775 |
字符串转换成数字:
将字符串转换成数字,用parseInt()函数和parseFloat()函数,isNaN()函数来检测 转换后的类型
var i = parseInt('abc'); if (isNaN(i)) { alert('NaN value'); }
注意:
- 只有字符串中的第一个数字会被返回。
- 开头和结尾的空格是允许的。
- 如果字符串的第一个字符不能被转换为数字,那么 parseInt() 和 parseFloat() 都会返回 NaN。
- 在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。
ParseInt:结果返回一个整数
如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数
如果解析不到数字,则将返回一个NaN的值,可以用isNaN()函数来检测;
parseInt("10"); //返回 10 parseInt("19",10); //返回 19 (10+9) parseInt("11",2); //返回 3 (2+1) parseInt("17",8); //返回 15 (8+7) parseInt("1f",16); //返回 31 (16+15) parseInt("010"); //未定:返回 10 或 8(在谷歌,火狐,360极速浏览器上测试的结果均为10)
parseFloat:结果返回一个浮点数
如果在解析过程中遇到了正负号(+ 或 -)、数字 (0-9)、小数点,或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。同时参数字符串首位的空白符会被忽略。
console.log(parseFloat("10")) //10 console.log(parseFloat("10.00")) //10 console.log(parseFloat("10.33")) //10.33 console.log(parseFloat("34 45 66")) //34 console.log(parseFloat(" 60 ")) //60 console.log(parseFloat("40 years")) //40 console.log(parseFloat("He was 40")) //NaN console.log(parseFloat("3.14")) //3.14 console.log(parseFloat("314e-2")) //3.14 console.log(parseFloat("0.0314E+2")) //3.14 console.log(parseFloat("3.14more n")) //3.14 console.log(parseFloat("-3.14")) //-3.14 console.log(parseFloat("=3.14")) //NaN console.log(parseFloat("314e-2")) //NaN console.log(parseFloat("e3.14")) //NaN
js数字转换成字符串
将字符串转换成数字,得用到String类的toString方法
var i = 10; var s = i.toString(); alert(typeof s); //将输出 string----typeof i number
js数字与字符串的区别
js的数字的加法与字符串的连接都是 + 符号, 所以究竟是加还是字符串的连接就取决与变量的类型。
var a = 'abc' + 'def'; //abcdef,字符串与字符串是连接 var a = 10 + 5; //15,数字是加 var a = 'abc' + 23; //abc23,字符串与数字,自动将10转换成字符串了 var a = 'abc' + 10 + 20 + 'cd'; //abc1020cd var a = 10 + 20 + 'abc' + 'cd'; //30abccd,可以数字加的先数字加,然后再连接 var a = 10 + '20'; //1020 string var a = 10 - '20'; //-10 number var a = '20' + 10; //20100 string ar a = '20' - 10; //10 number
如果从html页面元素得到的值,想按数字加,就需要先转换为数字,因为从页面得到的值默认是字符串