數字

整數

Kotlin的整數有分成有正負號還有沒有正負號兩種我們可以看看下面的表格整理:

類型

位元

最大值

最小值

Byte

8

127

-128

Short

16

32767

-32768

Int

32

2147483647

-2147483648

Long

64

9223372036854775807

-9223372036854775808

UByte

8

255

0

UShort

16

65535

0

UInt

32

4294967295

0

ULong

64

18446744073709551615

0

Kotlin的預設數字型態是Int,如果我們可能會使用到比Int還要再更大的數字,就會使用Long,沒有符號的型態跟Short和Byte就幾乎不太會使用到。在使用整數的時候我們需要注意我們的數值範圍大小,如果超過最大值或是最小值,就會發生溢位的情況:

fun main() {
    println(Int.MAX_VALUE + 1)println(Int.MIN_VALUE - 1)
}

小數

小數有兩種型態Double、Float,我們一樣先看看比較表:

類型

位元

最大值

最小值

Float

32

3.4028235E38

1.4E-45

Double

64

1.7976931348623157E308

4.9E-324

在Kotlin裡面小數的預設型態是Double,所以在我們往後使用到小數的時候,也會儘量使用Double。

型態之間的轉換

字串轉數字

Kotlin的字串有一系列的函數可以把字串轉換成相對應的數字型態:

  • toInt()、toLong()、toDouble()......

這個會期轉換成相對應的數字型態,如果轉換失敗的話,會拋出NumberFormatException

  • toIntOrNull()、toLongOrNull()、toDoubleOrNull()......

這個會期轉換成相對應的nullable數字型態,如果轉換失敗的話,會回傳null

數字間轉換

每一個數字型態裡面都會有to......(型態)的函數,可以轉換為相對應的型態。不過有一個需要注意的地方,在小數轉換成整數的時候,小數的部分會無條件捨去,這個現象我們稱為精度流失。如果我們需要四捨五入成整數的話,可以使用roundToInt()、roundToLong()這兩個函數。

數字轉字串

數字都有toString()的函數可以轉換成字串,不過如果有特殊的格式需求,可以使用String.format()函數


數字跟文字是很常使用的基礎型態,這些東西雖然基礎可是卻也有很多細節需要注意。而我們常常說“魔鬼藏在細節裡”有些時候我們往往會因為忽略了一些小細節出現一些奇怪的錯誤。所以在有事情不確定的時候,可以多多翻閱官方文件,裡面的內容都很詳細、完整,能讓我們更了解正確資訊!

官方文件網址

Last updated