number 類型的內建函式


Posted by saffran on 2021-02-05

在很多程式語言中,都有內建函式

使用內建函式的好處:

  1. 節省時間
  2. 讓程式碼更簡潔(如果是自己寫的話,可能要寫一大串,才能達成內建函式的效果)

  • 如果想要在 Google 搜尋 number 類型的內建函式,可以使用關鍵字「number JavaScript」,就可以找到很多資源
  • 在二進位中,沒辦法把十進位數字的浮點數表現的很精準。例如:0.1 + 0.2 === 0.3 會 return false

參考資料 Number
參考資料 Math

接下來,會介紹幾個常用的「number 類型的內建函式」

把數字轉成字串

第一種:toString()

var a = 5
var str = a.toString()

console.log(typeof str)
// output: string

第二種:number + ''

因為「數字 + 字串」會變成「字串」
所以把 a 加上一個「空字串」,就可以把 a 轉成字串

var a = 5
var str = a + ''

console.log(typeof str)
// output: string

把字串轉成數字

有兩種方式:

第一種:Number()

使用 Number() 會保留小數點以後的數字

var a = 10
var b = '20.75'
console.log(a + Number(b))
// output: 30.75

第二種:parseFloat()

Float 就是「浮點數」,也就是「小數」

使用 parseFloat() 會保留小數點以後的數字

var a = 10
var b = '20.75'
console.log(a + parseFloat(b, 10))
// output: 30.75

第三種:parseInt()

Int 就是 Integer(整數)的意思,所以

使用 parseInt() 不會保留小數點以後的數字

  • 第一個參數:要轉成數字的「字串」
  • 第二個參數:要把這個字串解釋成「幾進位的數字」,10 代表「十進位」
    var a = 10
    var b = '20.75'
    console.log(a + parseInt(b, 10))
    // output: 30
    

四捨五入 toFixed()

  • toFixed() 的回傳值,會是一個 string

不加參數:四捨五入到整數

例如:我用 toFixed() 就可以四捨五入到「整數」

var b = '20.738953'
console.log(parseFloat(b, 10).toFixed())
// output: 21

有加參數:四捨五入到小數點第幾位

例如:我用 toFixed(2) 就可以四捨五入到「小數點第二位」

var b = '20.738953'
console.log(parseFloat(b, 10).toFixed(2))
// output: 20.74

Number.MAX_VALUE

如果直接把 Number.MAX_VALUE 印出來,就代表:在 JavaScript,可以存的最大數字是 1.7976931348623157e+308

  • 如果存一個超出 Number.MAX_VALUE 的數字,存的就會不精準
    console.log(Number.MAX_VALUE)
    // output: 1.7976931348623157e+308
    

圓周率 Math.PI

像是圓周率這種不會變的數,我們會稱為「常數」,常數會用大寫來表示,例如: PI

console.log(Math.PI)
// output: 3.141592653589793

四捨五入 Math.round()

console.log(Math.round(10.7))
// output: 11

無條件進位 Math.ceil()

ceil 是「天花板(ceiling)」的意思,所以就是「往上取」--> 無條件進位

console.log(Math.ceil(10.3))
// output: 11

無條件捨去 Math.floor()

floor 是「地板」的意思,所以就是「往下取」--> 無條件捨去

console.log(Math.floor(10.7))
// output: 10

開平方根 Math.sqrt()

9 開根號就是 3

console.log(Math.sqrt(9))
// output: 3

次方 Math.pow()

2 的「5 次方」= 32

console.log(Math.pow(2, 5))
// output: 32

產生隨機數

這個隨機數的範圍會是:0 到 <1(包括 0,但小於 1)

console.log(Math.random())
// output: 0.7736234935788224

Math.random() 可以用在哪裡呢?

因為 Math.random() 可以產生 0 ~ 0.99999 之間的隨機數(把 <1 想成是 0.99999,會比較好想)

假設,我現在想要產生一個「1 ~ 10」 之間的隨機數

那我把 Math.random() 乘以 10,就可以產生一個「0 ~ 9.9999」之間的隨機數

console.log(Math.random() * 10)

那我把 Math.random() 乘以 10 再 +1,就可以產生一個「1 ~ 10.9999」之間的隨機數

接著,再用「無條件捨去」,就可以產生一個「1 ~ 10」之間的隨機數了!

console.log(Math.floor(Math.random() * 10 + 1))
// output: 10

#javascript







Related Posts

C 語言練習程式(5) -- 指標相關程式集錦(4)

C 語言練習程式(5) -- 指標相關程式集錦(4)

婚姻匹配問題(Stable Marriage Problem)

婚姻匹配問題(Stable Marriage Problem)

[BE201] 後端中階:ORM 與 Sequelize 改留言板系統

[BE201] 後端中階:ORM 與 Sequelize 改留言板系統


Comments