疯狂kotlin讲义连载之Kotlin的基础类型--浮点型

浮点型是可以包含小数部分的数值,浮点型比整型的表数范围更大,可以存储比Long更大或更小的数。Kotlin的浮点型有两种。

  •  Float:表示32位的浮点型,当精度要求不高时可以使用此种类型。
  •  Double:表示64位的双精度浮点型,当程序要求存储很大或者高精度的浮点数时使用这种类型。

Kotlin的浮点数有2种表示形式。

  • 十进制数形式:这种形式就是平常简单的浮点数,例如5.12、512.0、0.512。浮点数必须包含一个小数点,否则会被当成整数类型处理。
  •  科学计数形式:例如5.12e2(即5.12*102)、5.12E2(也是5.12*102)。

必须指出的是,只有浮点型的数值才可以使用科学计数形式表示。例如51200是一个Int型的值,但512E2则是浮点型的值。

如果声明一个常量或变量时没有指定数据类型,只是简单地指定了其初始值为浮点值,那么Kotlin会自动判断该变量的类型为Double。

除此之外,Kotlin还提供了3个特殊的浮点型数值:正无穷大、负无穷大和非数。例如,使用一个正数除以0.0将得到正无穷大数值,使用一个负数除以0.0将得到负无穷大数值,0.0除以0.0或对负数开方将得到一个非数。

需要指出的是,所有的正无穷大数值都相等,所有的负无穷大数值都相等;而非数不与任何数值相等,甚至和非数自己都不相等。

注意:只有浮点数除以0.0才可以得到正无穷大数值或负无穷大数值,但如果使用整型值除以整数0将会引起编译错误:division by zero(除0错误)。

下面程序示范了上面介绍的关于浮点数的各个知识点。

程序清单:codes\02\2.4\FloatTest.kt

fun main(args: Array<String>) {

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值