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(3)); // 3.142
console.log(num1.toFixed(5)); // 3.14150
  • toFixed(2) 非常適合處理金錢。

 

4.Number() 可用於把 JavaScript 變量轉換爲數值。

 

Number(true); // 1
Number(false); //0 
let x = new Date();
console.log(Number(x)); // 1568186258917 時間戳  Number() 方法返回 1970 年 1 月 1 日至今的毫秒數
console.log(Number(new Date("2019-09-11")));    // 1568186258917 時間戳 Number() 還可以把日期轉換爲數字:

Number('12'); // 12  數字類型
Number(11 22); // NaN 
Number(undefined); //NaN 

 

 

特殊情況 因爲空字符串、null 和0都是false

Number(null) ;//0;
Number(''); //0;

 

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.Number.isInteger() 用於判斷其參數是爲整數

Number.isInteger(0);  // true
Number.isInteger(0.1);  // false

13.Number.parseFloat()和parseFloat()一樣。

14.Number.parseInt()和parseInt()一樣。

15.isNaN() 函數用於檢查其參數是否是非數字值(和Number.isNaN()一樣)

無法使用 for/in 循環來枚舉 NaN 屬性,也不能用 delete 運算符來刪除它。

使用 isNaN() 來判斷一個值是否是數字。原因是 NaN 與所有值都不相等,包括它自己。

false的話 就是數字或者隱形數字類型

isNaN(123); // false
isNaN('123'); //false
isNaN('cao'); //true
isNaN('NaN');//true

 es6新增

16.Math.trunc方法用於去除一個數的小數部分,返回整數部分。

 

Math.trunc(4.1) // 4
Math.trunc(4.9) // 4
Math.trunc(-4.1) // -4
Math.trunc(-4.9) // -4
Math.trunc(NaN); // NaN
Math.trunc('foo'); // NaN
Math.trunc(); // NaN

 

17.Math.sign方法用來判斷一個數到底是正數、負數、還是零參數爲正數,返回+1;

  • 參數爲負數,返回-1;
  • 參數爲正數,返回+1;
  • 參數爲0,返回0;
  • 參數爲-0,返回-0;
  • 其他值,返回NaN。

 

 

 Math.sign(-5) // -1
 Math.sign(5) // +1
 Math.sign(0) // +0
 Math.sign(-0) // -0
 Math.sign(NaN) // NaN
 Math.sign('foo'); // NaN
 Math.sign(); // NaN

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章