如何在kotlin
中将包含浮点表示形式的字符串值转换为整数?
我尝试使用.toFloat()
将字符串转换为浮点数,然后使用toInt()
将其转换为整数,并且可以正常工作。
但是如何将这样的字符串直接转换为整数?
val strDemo = "42.22"
val intDemo = strDemo.toInt()
上面的代码段抛出NumberFormatException
,因为它不是整数的正确数字表示形式。
但是,当我尝试
val strDemo = "42.22"
val intDemo = strDemo.toFloat().toInt()
它毫无例外地转换数据,因为字符串先转换为浮点型。而且浮点值有正确的数字表示形式。
现在如何绕过toFloat()
方法并将strDemo
直接转换为Integer
?
答案 0 :(得分:2)
没有魔术函数可以将十进制/浮点字符串直接转换为整数。必须以这种方式完成。即使您找到了一个,我也确信该功能上仍会发生toFloat().toInt()
进程。
因此,您可以采取的解决方案是创建String
的扩展名,如下所示:
StringExt.kt
fun String.floatToInt(): Int {
return this.toFloat().toInt()
}
您可以像这样使用它:
val strDemo = "42.22"
val intDemo = strDemo.floatToInt()
答案 1 :(得分:0)
首先,您应该对变量使用 Var 之后,您应该这样做:
intdemo=strdemo.toFloat().toInt()
或
intdemo=valueof(strdemo).toFloat().toInt()