1. ホーム
  2. java

浮動小数点数にはなぜ符号付きゼロがあるのですか?

2023-08-13 04:27:41

疑問点

なぜダブルスには -0 だけでなく +0 ? その背景や意義は何ですか?

どのように解決するのですか?

-0 は、(一般的に) 0 *******. これは ネガ 浮動小数点数がゼロに非常に近いため、次のように見なされます。 0 (を意味します(はっきり言って、私が言っているのは 算術アンダーフロー であると解釈され、以下の計算結果は 丁度 ±0 のように、本当に小さな数字だけでなく)。例えば

System.out.println(-1 / Float.POSITIVE_INFINITY);

-0.0

同じケースを の場合、私たちは古き良き 0 :

System.out.println(1 / Float.POSITIVE_INFINITY);

0.0


******** ここで、以下のようなケースで -0.0 を使用したときとは異なる結果になります。 0.0 :

System.out.println(1 / 0.0);
System.out.println(1 / -0.0);

無限大
-無限大

このことは、関数 1 / x . として x アプローチ 0 から + -側では の側から近づくと - -となるはずです。 否定的 となるはずである。関数のグラフを見れば、これは明らかでしょう。

( ソース )

数学用語で言うと

これは 0-0 を計算機的な意味で使用します。


ここにいくつかの関連リソースがあります。いくつかはすでに取り上げられています。念のため載せておきます。