編集 4/23/12
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;
、2 つの s を分割していますint
。その除算の値を取得するint
ので、Mins = 43; の場合。2 時間 = 分 / 60; // Mins / 60 は int = 0 です。これを double の時間に割り当てると、 // 時間は double のゼロに等しくなります。
あなたがする必要があるのは:
double hours = Mins / ((double) 60);
double
またはそのようなものでは、除算を強制的にdouble
s ではなくs で行うために、除算の一部を a にキャストする必要がありますint
。