从 EditText 获取 Double 值

Getting a Double value from an EditText

我想在 EditText 框中输入一个数值。 InputType 指定为 "numberDecimal|numberSigned"。我发现有效的代码是:

mLatitude = txtLatitude.text.toString().toDouble()

这似乎不必要地令人费解。真的有必要先转换为字符串然后再转换为双精度吗?有没有更简单的方法?

Double.parseDouble() 不接受 txtLatitude.text.

返回的可编辑对象

如果需要,您可以创建自己的扩展程序

fun Editable.toDouble() = toString().toDouble()

fun test() {
    mLatitude = txtLatitude.text.toDouble()
}

别无他法。为了方便起见,您可以在 EditText:

上创建一个扩展函数
fun EditText.getDouble(): Double = try {
    text.toString().toDouble()
} catch (e: NumberFormatException) {
    e.printStackTrace()
    0.0
}

并像这样使用它:

val latitude = editText.getDouble()