作者简介:CSDN博客专家、华为云享专家认证
系列专栏:Kotlin 初学者
学习交流:三人行必有我师焉;择其善者而从之,其不善者而改之。
前言
- toByte():字节():字节
- toShort(): 短():短
- toInt(): 整数():整数
- toLong(): 长():长
- toFloat(): 浮动():浮动
- toDouble(): 双倍():双
- toChar(): 字符():字符
String转Int
将字符串解析为Int数字:
- 如果字符串不是数字的有效表示形式,则抛出NumberFormatException异常。
- 如果字符串是数字的有效表示形式,返回Int值。
fun main() { var str = "1223" println(str.toInt())//1223 str = "3.1415926" println(str.toInt())//报错 }
解决NumberFormatException异常:
使用toIntOrNull()安全转换:将字符串解析为Int数字,如果字符串不是数字的有效表示形式,则返回结果"null",而不是程序崩溃。
fun main() { //String转Int var str = "1223" println(str.toInt())//1223 str = "3.1415926" //报错java.lang.NumberFormatException: For input string: "3.1415926" //println(str.toInt()) println(str.toIntOrNull())//null str = "18" println(str.toIntOrNull())//18 }
所以当使用数字类型转换的时候 尽量使用toIntOrNull(),而不是toInt()。
Double转Int
//Double转Int var d = 3.1415926 println(d.toInt())//3 println(d.roundToInt())//3(四舍五入) d = 3.5415926 println(d.roundToInt())//4(四舍五入) println(d.toInt())//3
注意:用roundToInt()函数,保证Double转Int持有四舍五入的效果
Double类型格式化
格式化字符串是一串特殊字符,它决定该如何格式化数据。这个功能在实际开发当中比较常用。
//Double类型格式化 var s: String = "%.1f".format(d)//保留一位小数(且支持四舍五入) println(s)//3.5 d = 3.1415926 s = "%.1f".format(d)//保留一位小数(且支持四舍五入) println(s)//3.1 s = "%.2f".format(d)//保留两位小数(且支持四舍五入) println(s)//3.14 s = "%.3f".format(d)//保留三位小数(且支持四舍五入) println(s)//3.142