编辑 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;你划分两个ints。您将获得该int除法的值,因此如果 Mins = 43; 双小时 = 分钟 / 60;// Mins / 60 是一个 int = 0。将其分配给 double hours 使得 // hours 为 double 等于 0。
你需要做的是:
double hours = Mins / ((double) 60);
或类似的东西,您需要将除法的某些部分转换为 adouble以强制使用doubles 而不是ints 来完成除法。