わかった。私は 2 時間ほど頭を壁にぶつけていましたが、なぜ世界が 0double answer = 364/365;
だと言っているのかを理解しようとしています。どうして。answer
double
1627 次
5 に答える
9
364/365 は整数除算を実行します (小数点以下を切り捨てます)。
double answer = 364.0/365;
浮動小数点除算を実行するように強制してみてください。
何かのようなもの:
double days_in_year = 365;
double answer = 364/days_in_year;
オペランドの 1 つが整数ではないため、同様に機能します。
于 2010-02-16T05:02:33.260 に答える
6
int 型 (364) を取り、別の int 型 (365) で割ると、答えは int になります。これは double 型の回答に格納されます。次のことができます。
double answer = 364d / 365d;
詳細はこちら:
于 2010-02-16T05:03:58.697 に答える
2
二重除算を行う必要があります。現在、Java はそれを整数除算として解釈し、切り捨てられint
た .
必要なものは次のとおりです。
double answer = 364 / 365.0;
また
double answer = 364 / (double) 365;
于 2010-02-16T05:02:45.967 に答える
0
その理由は、Java の整数リテラルのデフォルトの型が でありint
、すべての基数演算のすべての結果int
が に型キャストされるためint
です。したがって、あなたの答えは 0.997 ですが、型キャストすると 0 になります。
(int)0.997 = 0
したがって、次のようにすることができます。
364.0/365.0
また
((float)364)/365
于 2010-02-16T05:06:22.580 に答える