//Double不能自动转换为Int,会崩溃,解决崩溃如下:toIntOrNull()如果转换失败会转为null var num2 = "666.6" var num3 = "666" println ( "转换失败: ${ num2 ? . toIntOrNull ( ) } ,转换成功: ${ num3 . toIntOrNull ( ) } " ) //?:如果为null执行后面的 var num5 = "666.6" println ( num5 ? . toIntOrNull ( ) ?: "前面转换失败,转换结果为null" ) 如果一个 String 类型的值为159.0这样的数时,直接.to Int ()就会产生报错 Error inflating class fragment Caused by: java.lang.NumberFormatException: For input string : “159.0” 可以 间加一个.toFloat()过渡一下,比如: book.pages = row.getCell(2).to String ().toFloat().to Int () //获取单元格
Kotlin 是一门强类型的 语言 ,因此编译器对类型检查非常严格,这种严格保证了 Kotlin 程序的健壮性,因此 Kotlin 不同类型的值经常需要进行相互 转换 ,数值型之间的变量和值也可以相互 转换 。 一、整型之间的 转换 不同整型的变量能支持的表数范围是不同的。 如下所示: Byte型证书在内存 通常占8位,表数范围是 -128~127。 兼容Java的byte和Byte类型 Short Short型证书在内存 通常占16位,表数范围是 -32768(-2的15次方)~32767(2的15次方减1)