JavaScript里处理数字的一些常用方法
1.toString() 把字符串转换为数值。
let num = 123; console.log(typeof(num)); //number console.log(typeof(num.toString())) //string
- typeof() 判断数据类型
2.toLocaleString() 方法可把一个 Number 对象转换为本地格式的字符串。
LocaleString()会根据你机器的本地环境来返回字符串,它和toString()返回的值在不同的本地环境下使用的符号可能变化;
var a = 6666; a.toLocaleString(); // "6,666" a.toString(); //"6666"
var dt = new Date(); console.log(dt.toLocaleString()); //2019/9/11 下午4:46:04 console.log(dt.toString()); //Wed Sep 11 2019 16:46:04 GMT+0800
3.toFixed() 返回字符串值,它包含了指定位数小数的数字。
let num1 = 3.1415; console.log(num1.toFixed(0)); // 3 console.log(num1.toFixed(1)); // 3.1 console.log(num1.toFixed(2)); // 3.14 console.log(num1.toFixed(5)); // 3.14150
- toFixed(2) 非常适合处理金钱。
4.Number() 可用于把 JavaScript 变量转换为数值。
let x = true; console.log(Number(x)); // 1 x= false; console.log(Number(x)); //0 x = new Date(); console.log(Number(x)); // 1568186258917 时间戳 Number() 方法返回 1970 年 1 月 1 日至今的毫秒数 console.log(Number(new Date("2019-09-11"))); // 1568186258917 时间戳 Number() 还可以把日期转换为数字: x = '12'; console.log(Number(x)); // 12 数字类型 x = '11 22'; console.log(Number(x)); //NaN 如果无法转换数字,则返回 NaN。
5.parseInt() 解析一段字符串,并返回一个整数。(取整)
parseInt("10"); // 返回 10 parseInt("10.33"); // 返回 10 parseInt("10 20 30"); // 返回 10 parseInt("10 years"); // 返回 10 parseInt("years 10"); // 返回 NaN 如果无法转换为数值,则返回 NaN (Not a Number)
6.parseFloat()解析一个字符串,并返回一个浮点数。
- parseFloat() 解析一段字符串并返回数值。允许空格。只返回首个数字
- 如果无法转换为数值,则返回 NaN (Not a Numbe)
parseFloat("10"); // 返回 10 parseFloat("10.33"); // 返回 10.33 parseFloat("10 20 30"); // 返回 10 parseFloat("10 years"); // 返回 10 parseFloat("years 10"); // 返回 NaN
7. Math.min() 方法可返回两个指定的数中带有较小的值的那个数。
Math.min(5,'7'); //5 Math.min(5,'q'); //NaN 如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN
8. Math.max() 方法可返回两个指定的数中带有较大的值的那个数。
Math.max(5,'7'); //7 Math.max(5,'q'); //NaN 如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN
9.Math.abs() 方法可返回数的绝对值
Math.abs(-7.25); // 7.25
10.Math.ceil() 方法可对一个数进行上舍入
- ceil() 方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。
Math.ceil(0.60); //1 Math.ceil(0.40); //1 Math.ceil(-5.1); //5
11.Math.floo() 方法可对一个数进行下舍入
Math.floor(0.60); //0 Math.floor(0.40); //0 Math.floor(-5.1); //-6
12.isNaN() 函数用于检查其参数是否是非数字值。
无法使用 for/in 循环来枚举 NaN 属性,也不能用 delete 运算符来删除它。
使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。
false的话 就是数字或者隐形数字类型
isNaN(123); // false isNaN('123'); //false isNaN('cao'); //true isNaN('NaN');//true