从 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()
我想在 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()