将“ float”的字符串转换为整数

时间:2019-07-04 06:27:52

标签: kotlin

如何在kotlin中将包含浮点表示形式的字符串值转换为整数?

我尝试使用.toFloat()将字符串转换为浮点数,然后使用toInt()将其转换为整数,并且可以正常工作。 但是如何将这样的字符串直接转换为整数?

val strDemo = "42.22"
val intDemo = strDemo.toInt()

上面的代码段抛出NumberFormatException,因为它不是整数的正确数字表示形式。

但是,当我尝试

val strDemo = "42.22"
val intDemo = strDemo.toFloat().toInt()

它毫无例外地转换数据,因为字符串先转换为浮点型。而且浮点值有正确的数字表示形式。

现在如何绕过toFloat()方法并将strDemo直接转换为Integer

2 个答案:

答案 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()