2012-04-29 3 views
4

私は、次の変数があります。のJava課エラー

int first = 0; 
int end = 0; 

は、パブリッククラスに宣言します。方法内

System.out.println

double diff = end/first; 
double finaldiff = 1 - diff; 
end

変数はfirst480で、527あります。

なぜdiffの答えは1と出てくるのですか?それは1.097916667でなければなりません、私はdoubleを使用して私が小数点以下を計算できるようになると思いましたか?

+0

0/0は、申し訳ありませんが1でも1.097916667 ... –

+1

もなく、最後と最初は前のif文の中に収集されます。 – Ben

+0

@OliCharlesworth:OPは次のよ​​うに述べています。「system.out.printlnのendyear変数は527です。最初の年は480です。」そのような計算は527/480であり、deosは「1.097916666666667」に等しくなります。どこから0/0を得たかわからない。 – Nope

答えて

6

intを2つに分割すると、intが得られ、暗黙的にdoubleに変換されます。 divison前doubleに1キャスト:

double diff = (double)end/first; 
+0

ありがとうございました。 – Ben

+0

チェックマークはどこですか? – lukecampbell

+0

+1:よく目に付きます。 – Nope