2017-09-15 3 views
-2

私はこれに簡単な説明があると確信していますが、私はあまりにも多くの時間を費やしてきました。私は、ここの誰かがいくつかの点についてすぐに私を助けることができると考えました。Javaのモジュラス分割:どうしたのですか?

これは私の問題です:

var1 = 5000/3600; 

var2 = 5000 % 3600; 

System.out.println(var1); 

System.out.println(var2); 

出力:

1.3888888 

1400.0 

だから、私は "%" のシンボルが、残りを与えると思いましたか?その場合、3888888の代わりに2行目の1400.0の出力が表示されるのはなぜですか?私は76/12と76%12の番号を交換すると、私は正しい6と4を取得します。私は困惑していますが、さまざまなデータ型を試しましたが、何も変わりません(int、long、double、float)。プログラムをコード化する別の方法を考えましたが、今のところ、かもしれない? 3600で割っ

+8

モデューロ '%'残量を与え、ないパーセントまたは小数:ちょうどあなたがで割った数でMODの結果を分割します分数。だから、3600は5000に1回だけ入り、1400は残っています。 1400年には0.38、または38.888 ...パーセント、または3600です – AntonH

+5

あなたは[残り](https://www.mathsisfun.com/definitions/remainder.html)が何であるかの誤解があります。 – alfasin

+0

笑、私はそれが小数の右側にすべてを格納することになっていたと思っていた。見て、私はそれが誰にとっても愚かで簡単な質問であることは分かっていました。さて、私は今それを持っています。みんなありがとう! – YumBerrys

答えて

2

%演算子は余りを与えない、と5000は数値で表される1400

の残り、私はあなたがあなたの部門の端数部分を与えることを%演算子を期待していると思うの葉0以上(1を含まない)の間では、何も起こりません。あなたは、その値を取得したい場合は、しかし、それはあまりにも多くの仕事ではありません。

double fracRemainder = (5000.0 % 3600.0)/3600.0; 
+1

おかげで、私は愚かに考えていた。私のためにそれをクリアしてくれてありがとう。 – YumBerrys

関連する問題