在很多程式語言中,都有內建函式
使用內建函式的好處:
- 節省時間
- 讓程式碼更簡潔(如果是自己寫的話,可能要寫一大串,才能達成內建函式的效果)
- 如果想要在 Google 搜尋 number 類型的內建函式,可以使用關鍵字「number JavaScript」,就可以找到很多資源
- 在二進位中,沒辦法把十進位數字的浮點數表現的很精準。例如:
0.1 + 0.2 === 0.3
會 return false
接下來,會介紹幾個常用的「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