−0(マイナスゼロ)、あるいは負のゼロとは、数値のゼロにマイナスの符号をつけたものである。
通常の算術では、負のゼロは単なるゼロ(及び正のゼロ、+0)と同じであるが、これらを分ける方が望ましい場合や、分けて扱わざるを得ない場合がある。
そのようなケースとして、以下のものがある 極限。例えば右方極限を と左方極限を と書いて区別する場合 コンピュータの数値表現においてゼロの表現が一意でない場合
数学 は通常、極限操作を表す記号として用いられ、実数上の元とは扱われない。これは任意の実数 に対する についても同様である。
しかし、煩雑さを避けるため、標語的に正負のゼロや無限大を実数であるかのように表記することがしばしば行われる。
コンピュータの数値表現と負のゼロ IEEE 754における負のゼロ
現在のほぼ全てのコンピュータやプログラミング言語が採用している浮動小数点数の標準である IEEE 754 には通常の 0.0 と −0.0 がある。
その他のコンピュータの数値表現における負のゼロ コンピュータの数値表現では、補数を利用して負数を表現することが多いが、同じ補数でも基数の補数を利用した場合には負のゼロが生じないのに対し、減基数の補数を用いた場合には負のゼロが生じる。また「符号と絶対値」方式の場合にもゼロについて正と負の2つのゼロがある(前述のIEEE 754など)。
統計等における負のゼロ サムネイル|−0 °Cを表示する温度計 気象学では、−0 °Cは 0 °C(セルシウス温度)より低いが −1 °Cとするほどではない温度を示し、統計的な意味(つまり1 °C単位で統計を取る場合)では重要なこともある。例えば、−0.2 °Cがその例である。0 °Cは負の範囲を含まないのでこれを 0 °Cとして統計処理することはできない。また、冬季の寒さを比較する際に日中の気温が 0 °C未満(氷点下)の日を数えることは基本であり、無視することができない。従って −1 °Cに丸めるには絶対値が小さすぎる温度は −0 °C と記録される。道路上などに設置してある気温・路温計でもそれを見ることが出来る。
数値表現としての負のゼロ
コンピュータにおける負の値の扱い方にはいろいろあるが、IEEE 754 が採用しているような「符号と絶対値」方式による表現では、ゼロについて、
+0 −0
の二種類の表現が可能であるため、問題が生じることがある。なお21世紀にはほとんど見られなくなったがかつては、整数の表現についても「符号と絶対値」方式が採用されることもあった。
例えば、IEEE 754 では、x == y といったような通常の比較において、通常のゼロと負のゼロを比較した場合、真になることを要求している。単にワードを整数と同様に比較しただけでは、その要求を満たすことができない。もっとも、IEEE 754 ではたとえば NaN についても同様に例外的な扱いが必要なので ( NaN == NaN は常に偽で NaN != NaN は常に真) 、実装上、負のゼロがきわめて特異というわけでもない(IEEE 754 では)。
参考文献
— 負のゼロを含む十進浮動小数点数の仕様。 — FORTRAN の 関数が、負のゼロを扱えるよう Fortran 95 で変更された。 — JScript の浮動小数点型は定義として負のゼロを持つ。 — Java仮想マシンにおける負のゼロの表現 — 浮動小数点数を比較する際に負のゼロをどう扱うか — UNIVAC® 1100 ファミリにおける1の補数表現
関連項目 整数 0 正の数と負の数 自然数 コンピュータの数値表現 符号付数値表現 補数 位取り記数法