编辑 2012 年 4 月 23 日
double cannot be dereferenced
是一些 Java 编译器在您尝试调用原语上的方法时给出的错误。在我看来double has no such method
会更有帮助,但我知道什么。
从您的代码中,您似乎认为可以通过 hours.setText(hoursminfield);hours
复制一个文本表示。hoursminfield
这有一些错误:1)小时是double
一个原始类型,没有可以调用的方法。这就是给您所询问的错误的原因。2)您没有说 hoursminfield 是什么类型,也许您甚至还没有声明它。3)通过将变量作为方法的参数来设置变量的值是不寻常的。它有时会发生,但通常不会。
执行您似乎想要的代码行是:
String hoursrminfield; // you better declare any variable you are using
// wrap hours in a Double, then use toString() on that Double
hoursminfield = Double.valueOf(hours).toString();
// or else a different way to wrap in a double using the Double constructor:
(new Double(hours)).toString();
// or else use the very helpful valueOf() method from the class String which will
// create a string version of any primitive type:
hoursminfield = String.valueOf(hours);
原始答案(解决了代码中的另一个问题):
在double hours = Mins / 60;
你划分两个int
s。您将获得该int
除法的值,因此如果 Mins = 43; 双小时 = 分钟 / 60;// Mins / 60 是一个 int = 0。将其分配给 double hours 使得 // hours 为 double 等于 0。
你需要做的是:
double hours = Mins / ((double) 60);
或类似的东西,您需要将除法的某些部分转换为 adouble
以强制使用double
s 而不是int
s 来完成除法。