瘋狂kotlin講義連載之Kotlin的基礎類型--浮點型

浮點型是能夠包含小數部分的數值,浮點型比整型的表數範圍更大,能夠存儲比Long更大或更小的數。Kotlin的浮點型有兩種。html

  •  Float:表示32位的浮點型,當精度要求不高時能夠使用此種類型。
  •  Double:表示64位的雙精度浮點型,當程序要求存儲很大或者高精度的浮點數時使用這種類型。

Kotlin的浮點數有2種表示形式。編程

  • 十進制數形式:這種形式就是日常簡單的浮點數,例如5.十二、512.0、0.512。浮點數必須包含一個小數點,不然會被當成整數類型處理。
  •  科學計數形式:例如5.12e2(即5.12*102)、5.12E2(也是5.12*102)。

必須指出的是,只有浮點型的數值才能夠使用科學計數形式表示。例如51200是一個Int型的值,但512E2則是浮點型的值。app

若是聲明一個常量或變量時沒有指定數據類型,只是簡單地指定了其初始值爲浮點值,那麼Kotlin會自動判斷該變量的類型爲Double。ide

除此以外,Kotlin還提供了3個特殊的浮點型數值:正無窮大、負無窮大和非數。例如,使用一個正數除以0.0將獲得正無窮大數值,使用一個負數除以0.0將獲得負無窮大數值,0.0除以0.0或對負數開方將獲得一個非數。post

須要指出的是,全部的正無窮大數值都相等,全部的負無窮大數值都相等;而非數不與任何數值相等,甚至和非數本身都不相等。ui

注意:只有浮點數除以0.0才能夠獲得正無窮大數值或負無窮大數值,但若是使用整型值除以整數0將會引發編譯錯誤:division by zero(除0錯誤)。url

下面程序示範了上面介紹的關於浮點數的各個知識點。spa

程序清單:codes\02\2.4\FloatTest.ktcode

fun main(args: Array<String>) {orm

var af1 =

5.2345556f
;

// 下面將看到af1的值已經發生了改變

println("af1的值爲:${af1}")

// 聲明af是Float類型,但25.2345值默認是Double類型,所以下面代碼編譯時報錯

var af2: Float = 25.2345

// f1的類型被推斷爲Double

var f1 = 5.12e2

println("f1的值爲:${f1}")

var a = 0.0

// 5.0除以0.0將出現正無窮大數值

println("5.0/a的值爲:${5.0 / a}")

// 全部的正無窮大數值都相等,因此下面將會輸出true

println(5.0 / a == 50000 / 0.0)

// -5.0除以0.0將出現負無窮大數值

println("-5.0/a的值爲:${-5.0 / a}")

// 全部的負無窮大數值都相等,因此下面將會輸出true

println(-5.0 / a == -50000 / 0.0)

// 0.0除以0.0將出現非數

var nan : Double = a / a

println("a/a的值爲:${nan}")

// 非數與本身都不相等,因此下面將會輸出false

println(nan == nan)

}

以上內容節選自《瘋狂Kotlin講義》:一本讓您最直接認識Kotlin的瘋狂講義
本書即將於2017年11月發售 敬請期待
往期連載
相關書籍《瘋狂Android講義》https://item.jd.com/11689014.html
相關文章
相關標籤/搜索