我需要将 3 个 editText 转换为 Double 并进行自动计算。问题是:在 Java 中,Double.parseDouble()如果 editText 字符串为空,则使用抛出异常,因此我必须使用 try catch。在 Kotlin 中,使用toDoubleOrNull我必须检查“if”是否为空。
现在,我必须使用 2 个 editTextval a = firstDobule + secondDouble然后val b = a + 2
但是使用上述方法我无法分离计算:它需要同时转换所有 3 个 editText,我想一次转换单个 editText。
为了让您更好地理解,这是 C# 中的代码:
Double.TryParse(firstEditText.Text, out Double firstDouble);
Double.TryParse(secondEditText.Text, out Double secondDOuble);
Double a = firstDouble + secondDOuble;
Double b = a + 2;
Run Code Online (Sandbox Code Playgroud)
在 C# 中,使用 TryParse 不会抛出任何异常,也不需要手动检查是否为 null。我想这样做,但在 Kotlin 或 Java 中
您可以为此编写一个扩展函数EditText,将其文本值作为双精度值返回。
fun EditText.doubleValue() = text.toString().toDoubleOrNull() ?: 0.0
Run Code Online (Sandbox Code Playgroud)
这假设您希望在无法解析输入的情况下获得 0。然后您可以轻松读取值:
val a = firstEditText.doubleValue() + secondEditText.doubleValue()
val b = a + 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |