即使条件为true也不起作用,否则块始终在执行。
注意:firstnum
变量是一个字符串。
double a = Double.valueOf(result.getText().toString());
if (Double.parseDouble(firstnum) > a ) {
result.setText("First num is greater");
else{
result.setText("First num is smaller");
}
答案 0 :(得分:0)
首先,您应该知道Double.valueOf和Double.parseDouble有什么区别:
parseDouble()
返回原始双精度值。
valueOf()
返回包装类Double的实例。
并与包装类Double的数量进行比较,您应该像这样比较它们:
Double a = 1.33;
Double b = 2.33;
if(a.equals(b)){
//do something
}
否则,使用==将比较对象指针(a和b的地址)
P.S:它将检查它们是否是相同的对象,而不是相等的值。
现在要解决您的问题,请用以下内容替换第一行:
double a = Double.parseDouble(result.getText().toString());
,以便当您用a
运算符比较firstnum
和==
时,您将比较值而不是地址指针,因为它们是双原始类型并且不是Double
包装类< / p>