[解決済み] intをintで割ってdoubleに格納する際に予期せぬ結果が発生する [重複]。
2022-02-19 05:02:19
質問
変な問題があるんだけど。
このコードは単純にintを別のintで割って、結果をdouble変数に格納し、それを表示するものです。
int a = 200;
int b = 557;
double divisionResult = a / b;
System.out.println("Result: " + divisionResult);
このコードを実行すると、次のような出力が得られます。
Result: 0
これは奇妙なことで、なぜなら
200/557
は
0.3590664272890485
をキャストすると
a
と
b
から
double
を分割行に
double divisionResult = (double) a / (double) b;
完璧に動作しています。
なぜ本当の除算結果を得るために、変数を double にキャストしなければならないのですか?
どのように解決するのですか?
なぜなら、整数の割り算では、答えが完全な整数でない場合、小数点以下の桁が削除されるからです(整数の割り算では整数値が得られます)。
なお、両方の整数をキャストする必要はなく、片方だけをキャストすれば、もう片方は暗黙のうちに変換されます。
なぜキャストの後に動作するのでしょうか?
なぜなら、キャストの方が
/
. つまり、まずキャストして、次にデバイディングするのです。もしそうでなければ、次のようになります。
0.0
.
関連
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み] StringBuilderをクリアまたは空にするにはどうすればよいですか?重複] [重複] [重複] [重複] [重複] [重複
-
[解決済み】Javaの".class expected "について
-
[解決済み] double 型を丸め込んで int 型にする (java)
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み】swiftでDoubleを最も近いIntに丸めるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】ResultSetの例外 - 結果セットの開始前
-
[解決済み] 二項演算子「&」のオペランド型がおかしい java
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Javaメソッドスタブ
-
[解決済み】Javaの".class expected "について