为我的android编码计算工具。在输入上是英尺和英寸的距离。
我有两个分别为英尺和英寸的输入(input3和input4)。在我的计算中,我试图将这两个输入转换为十进制数,以便在等式的其余部分中使用。这是我的代码中执行此操作的部分:
private void doCalculation() {
// Get entered input value
String strValue3 = input3.getText().toString();
String strValue4 = input4.getText().toString();
// Perform a hard-coded calculation
double imperial1 = (Integer.parseInt(strValue3) + (Integer.parseInt(strValue4) / 12));
// Update the UI with the result to test if calc worked
output2.setText("Test: "+ imperial1);
}
我的测试值是4英尺6英寸。 4这个很好,但是当它除以12时,6英寸默认为0.所以我的结果是4.0我尝试将计算减少到JUST分割操作,结果是0.0
我做错了什么? (fyi:这是我第一次使用Java)
答案 0 :(得分:8)
你的类型错了。当你真的应该加倍时,你将它们解析为整数。
尝试:
double imperial1 = Double.parseDouble(strValue3) +
(Double.parseDouble(strValue4) / 12.0);
答案 1 :(得分:1)
...... Eli说的话。
我只是想问为什么你的变量被称为strValue3和strValue4。我猜它是由它产生的,但是你应该养成将事物命名的习惯。我可能会选择“英尺”和“英寸”:)
答案 2 :(得分:1)
Can you explain what a try-catch block is?
首先,您必须了解异常是什么。例外是在程序执行期间发生的事件,它会破坏程序指令的正常流程。
Java中有3种例外:
运行时异常:如果异常的数据类型为java.lang.RuntimeException
或其子类,则异常称为运行时异常。
已检查的例外:如果异常的数据类型是java.lang.Exception
的子类,而不是{{1}的子类,则异常称为已检查的异常}。
错误:如果异常的数据类型是RuntimeException
的子类,则异常称为错误。错误与应用程序之外出现的问题相关联,通常不会尝试从错误中恢复。
有关例外的更详细说明,请阅读this。
为了捕获和处理这些异常,您可以使用try-catch块。例如,您使用java.lang.Error
函数。如果此函数中的参数不是有效数字,例如,如果用户提供字符串“ Notanumber ”,您尝试将其转换为double,那么Double.parseDouble
将被NumberFormatException
抛出{1}}。如果您不处理此错误,您的程序将意外终止。
所以,你应该写下面的内容(包括你想要的正数字):
Double.parseDouble