ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
**先介绍“基本内置类型”(数值类型)** | 类型 | 描述 | 长度(bite) | 数据示例 |数据类型 |存储值范围 | | ------ | ------ | ---- | --- | --- |--- | | Byte | 字节 | 8位(1字节) | var a: Byte = 1 |整数|-128~127| | Short | 短整型 |16位(2字节) | var b: Short = 1 | 整数|-32768~32767 | | Int | 整型 |32位(4字节)| var c: Int = 1 | 整数|-2147483648~2147483647 | | Long | 长整型 | 64位(8字节)| var d: Long = 1L | 整数|-9223372036854775808~9223372036854775807 | | Float | 浮点型 | 32位(4字节)| var e: Float = 1f |小数|小数点可以精确到6位 | | Double | 双精度浮点型 | 64位(8字节)| var f: Double = 1.0 |小数|小数点可以精确到15-16位 | 也可以参考下面这张图 ![](https://box.kancloud.cn/b0904f4d8f83858c1c891cfb312655ca_812x553.png) >[info] **注意**: >①、在 Kotlin 中字符不是数值类型,也不可以转化为数字,不过可以显式转换为数字。(Java中可以直接隐式转换为Int) >②、String:字符串,用"'双引号引起来的字符串都可以存,和Java中的String不一样 >③、Kotlin 没有包装类型,只有基本数据类型 ④、Kotlin中整数默认类型是Int,浮点数默认类型是Double 在编辑器,也可以通过代码的形式来输出数值类型的取值范围,如下代码 ~~~ // 变量的取值范围 fun main(args: Array<String>) { val aByte: Byte = Byte.MAX_VALUE val bByte: Byte = Byte.MIN_VALUE println("Byte的最大值:" + aByte) println("Byte的最小值:" + bByte) println("...........") val aShort: Short = Short.MAX_VALUE val bShort: Short = Short.MIN_VALUE println("Short的最大值:" + aShort) println("Short的最小值:" + bShort) println("...........") val aInt: Int = Int.MAX_VALUE val bInt: Int = Int.MIN_VALUE println("Int的最大值:" + aInt) println("Int的最小值:" + bInt) println("...........") val aLong: Long = Long.MAX_VALUE val bLong: Long = Long.MIN_VALUE println("Long的最大值:" + aLong) println("Long的最小值:" + bLong) val cInt:Int=0b0011 println("二进制类型cInt的值是什么:"+cInt) } ~~~ 输出以下 ~~~ Byte的最大值:127 Byte的最小值:-128 ........... Short的最大值:32767 Short的最小值:-32768 ........... Int的最大值:2147483647 Int的最小值:-2147483648 ........... Long的最大值:9223372036854775807 Long的最小值:-9223372036854775808 二进制类型cInt的值是什么:3 ~~~ **为啥kotlin要定义多种数据类型?** 容器有大小,数据有不同。 **数字字面值中的下划线(自 1.1 起)** 你可以使用下划线使数字常量更易读: ~~~ val oneMillion = 1_000_000 val creditCardNumber = 1234_5678_9012_3456L val socialSecurityNumber = 999_99_9999L val hexBytes = 0xFF_EC_DE_5E val bytes = 0b11010010_01101001_10010100_10010010 ~~~