您的当前位置:首页正文

Kotlin基础类型——浮点型

来源:华佗小知识

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

Kotlin有两种浮点型:

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

Kotlin的浮点数有两种表示形式:

  1. 十进制数形式:就是简单的浮点数。浮点数必须包含一个小数点,否则会被当成整数类型处理。
  2. 科学计数形式:5.12e2

只有浮点型的数值才可以使用科学计数形式表示。

Kotlin提供了三个特殊的浮点型数值:正无穷大、负无穷大和非数。

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

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

    var af1 = 5.23456f
    println("af1的值为:$af1")
    //声明af2是Float类型,但是25.045默认是Double类型,报错
//    var af2: Float = 25.045
    var f1=5.12e2
    println("f1的值为:$f1")
    var a=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}")
    //所有负无穷大数值都相等
    println(-5.0/a==-50000/0.0)
    //0.0除以0.0将出现非数
    var nan:Double=a/a
    println("a/a的值为:$nan")
    //非数与自己都不相等
    println(nan==nan)

输出结果如下:

af1的值为:5.23456
f1的值为:512.0
5.0/a的值为:Infinity
true
-5.0/a的值为:-Infinity
true
a/a的值为:NaN
false

学海无涯苦作舟

我的微信公众号.jpg