[解決済み] Javaで2つのdouble値を比較する方法は?
2022-03-06 17:15:43
質問
Javaで2つのdouble値を単純に比較すると、いくつかの問題が発生します。Javaで次のような簡単なコードスニペットを考えてみましょう。
package doublecomparision;
final public class DoubleComparision
{
public static void main(String[] args)
{
double a = 1.000001;
double b = 0.000001;
System.out.println("\n"+((a-b)==1.0));
}
}
上記のコードは、以下のように表示されます。
true
を評価すると、式
((a-b)==1.0)
が、そうなっていない。それは
false
なぜなら、この式の評価は
0.9999999999999999
であることが予想されましたが、実際には
1.0
とは一致しません。
1.0
したがって、この条件はブール値として評価されます。
false
. このような状況を打開するための最良の方法、および推奨される方法は何でしょうか?
解決方法は?
基本的に厳密な比較はしないほうがいい、こんな感じ。
double a = 1.000001;
double b = 0.000001;
double c = a-b;
if (Math.abs(c-1.0) <= 0.000001) {...}
関連
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringを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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] SubclipseとJavaHLのインストールで頭を悩ます
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました