<p><b>−0</b>或<b>負零</b>代表<b>0</b>的相反數，等於0。特定情況下，−0可能具有特殊意義。
在電腦科學中，−0主要用來表達浮點數，以及在某些時候對整數進行有符號數處理。
</p><p>在普通應用中，−0有可能被用來表示一個可以四捨五入為零的負數，或者是一個從負方向上趨近於零的數。
</p><p>在統計力學中，特定的系統在反轉分布的狀態下，可以被認為擁有−0的絕對溫度。
</p>


<h2><span id=".E8.AE.A1.E7.AE.97.E6.9C.BA.E7.A7.91.E5.AD.A6"></span><span id="计算机科学">電腦科學</span></h2>
<h3><span id=".E8.A1.A8.E7.A4.BA.E6.B3.95"></span><span id="表示法">表示法</span></h3>

<p>在對於整數的1+7位元的符號數值表示法中，負零是用二進位代碼10000000表示的。在8位元一補數中，負零是用二進位代碼11111111表示，但二補數表示法則沒有負零的概念。在IEEE 754二進位浮點數算術標準中，指數和尾數為零、符號位元為一的數就是負零。
</p><p>在IBM的普通十進位算數編碼規範中，運用十進位來表示浮點數。這裡負零被表示為指數為編碼內任意合法數值、所有係數均為零、符號位元為一的數。
</p>
<h3><span id=".E6.80.A7.E8.B4.A8.E4.B8.8E.E5.A4.84.E7.90.86"></span><span id="性质与处理">性質與處理</span></h3>
<p>在程式語言，例如C、C#、C++和Java，一個表達式的結果可能是負零（比如對一個負數算術下溢時的結果），此時負零和正零是等效的。因此一個簡單的比較不能夠確定一個數是負零。確定一個數是負零的辦法包括：
</p>
<ol><li>使用IEEE 754中定義的<code>copysign()</code>函式複製零的符號到任意非零的數上。</li>
<li>用一個正數來除以這個零——得到的無窮能夠反映出零的符號
<ul><li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {x}{+0}}=+\infty }">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mi>x</mi>
            <mrow>
              <mo>+</mo>
              <mn>0</mn>
            </mrow>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>+</mo>
        <mi mathvariant="normal">∞<!-- ∞ --></mi>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {x}{+0}}=+\infty }</annotation>
  </semantics></math></span></span> (x&gt;0)</li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {x}{-0}}=-\infty }">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mi>x</mi>
            <mrow>
              <mo>−<!-- − --></mo>
              <mn>0</mn>
            </mrow>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mi mathvariant="normal">∞<!-- ∞ --></mi>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {x}{-0}}=-\infty }</annotation>
  </semantics></math></span></span> (x&gt;0)</li></ul></li>
<li>在Java中，用<code>Double</code>類中的<tt>equals</tt>方法，能夠分辨出正零和負零，例如：
<ul><li><tt>Double negativeZero = new Double(-0.0);<br>negativeZero.equals(-0.0); // 結果：真<br>negativeZero.equals( 0.0); // 結果：假</tt></li></ul></li>
<li>在C語言中，使用一個依賴於本地硬體表示法的不方便的辦法。例： <code>*(int *)&amp;var == 0x80000000</code>（<tt>var</tt>在IEEE 754中編碼單精度）。</li></ol><p>其他對於負零的運算有：
</p>
<ul><li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {-0}{x}}=-0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mo>−<!-- − --></mo>
              <mn>0</mn>
            </mrow>
            <mi>x</mi>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {-0}{x}}=-0}</annotation>
  </semantics></math></span></span> (x&gt;0)</li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {-0}{x}}=+0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mo>−<!-- − --></mo>
              <mn>0</mn>
            </mrow>
            <mi>x</mi>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>+</mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {-0}{x}}=+0}</annotation>
  </semantics></math></span></span> (x&lt;0)</li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {+0}{x}}=-0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mo>+</mo>
              <mn>0</mn>
            </mrow>
            <mi>x</mi>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {+0}{x}}=-0}</annotation>
  </semantics></math></span></span> (x&lt;0)</li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {-0}{+\infty }}=-0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mo>−<!-- − --></mo>
              <mn>0</mn>
            </mrow>
            <mrow>
              <mo>+</mo>
              <mi mathvariant="normal">∞<!-- ∞ --></mi>
            </mrow>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {-0}{+\infty }}=-0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {-0}{-\infty }}=+0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mo>−<!-- − --></mo>
              <mn>0</mn>
            </mrow>
            <mrow>
              <mo>−<!-- − --></mo>
              <mi mathvariant="normal">∞<!-- ∞ --></mi>
            </mrow>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>+</mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {-0}{-\infty }}=+0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\frac {+0}{-\infty }}=-0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mo>+</mo>
              <mn>0</mn>
            </mrow>
            <mrow>
              <mo>−<!-- − --></mo>
              <mi mathvariant="normal">∞<!-- ∞ --></mi>
            </mrow>
          </mfrac>
        </mrow>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle {\frac {+0}{-\infty }}=-0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (-0)\cdot (-0)=+0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>⋅<!-- ⋅ --></mo>
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>=</mo>
        <mo>+</mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle (-0)\cdot (-0)=+0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (-0)-(+0)=-0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>−<!-- − --></mo>
        <mo stretchy="false">(</mo>
        <mo>+</mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle (-0)-(+0)=-0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (-0)-(-0)=0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>−<!-- − --></mo>
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>=</mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle (-0)-(-0)=0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (+0)+(-0)=0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mo stretchy="false">(</mo>
        <mo>+</mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>+</mo>
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>=</mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle (+0)+(-0)=0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (-0)+(-0)=-0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>+</mo>
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle (-0)+(-0)=-0}</annotation>
  </semantics></math></span></span></li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x\cdot (-0)=-0}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>x</mi>
        <mo>⋅<!-- ⋅ --></mo>
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>=</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle x\cdot (-0)=-0}</annotation>
  </semantics></math></span></span> (x&gt;0)</li>
<li><span><span><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x+(-0)=x}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>x</mi>
        <mo>+</mo>
        <mo stretchy="false">(</mo>
        <mo>−<!-- − --></mo>
        <mn>0</mn>
        <mo stretchy="false">)</mo>
        <mo>=</mo>
        <mi>x</mi>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle x+(-0)=x}</annotation>
  </semantics></math></span></span></li></ul><h2><span id=".E8.87.AA.E7.84.B6.E7.A7.91.E5.AD.A6"></span><span id="自然科学">自然科學</span></h2>
<p>在氣象學中，處於統計學的原因，−0常常用來表示一個低於零度卻又不足以約分成-1的溫度（無論華氏溫標還是攝氏溫標），比如−0.2度，它不能被列為零度因為零度顯然不會小於零。然而低於零度的天數往往是比較冬季寒冷程度的一個基本統計資料，所以它並不能被忽略。不過它又沒有低到能夠約分為-1度，所以就被記錄為−0度。</p><p>在統計力學中，一個系統可能會有負的絕對溫度，但是和直覺相反，這並不是極端寒冷，反而是極端炎熱，比任何一個正的溫度都要高(意指−0=無限)。在相關文獻裡，−0就是最高的溫度。</p>
<h2><span id=".E5.8F.82.E8.80.83.E8.B5.84.E6.96.99"></span><span id="参考资料">參考資料</span></h2>
<ul><li><cite class="citation web">Floating point types. MSDN C#語言詳述.  <span> [2005年10月15日]</span>. （原始內容存檔於2006年8月24日）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=Floating+point+types&amp;rft.genre=unknown&amp;rft.jtitle=MSDN+C%23%E8%AF%AD%E8%A8%80%E8%AF%A6%E8%BF%B0&amp;rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Flibrary%2Fen-us%2Fcsspec%2Fhtml%2Fvclrfcsharpspec_4_1_6.asp&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span></li>
<li><cite class="citation web">Division operator. MSDN C#語言詳述.  <span> [2005年10月15日]</span>. （原始內容存檔於2005年11月21日）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=Division+operator&amp;rft.genre=unknown&amp;rft.jtitle=MSDN+C%23%E8%AF%AD%E8%A8%80%E8%AF%A6%E8%BF%B0&amp;rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Flibrary%2Fen-us%2Fcsspec%2Fhtml%2Fvclrfcsharpspec_7_7_2.asp&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span></li>
<li><cite class="citation journal">Thomas Wang. Java Floating-Point Number Intricacies. 2000年3月 <span> [<span>2007-07-07</span>]</span>. （原始內容存檔於2005-09-21）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=Java+Floating-Point+Number+Intricacies&amp;rft.au=Thomas+Wang&amp;rft.date=2000-03&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.concentric.net%2F~Ttwang%2Ftech%2Fjavafloat.htm&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span></li>
<li><cite class="citation web">Specification. General Decimal Arithmetic: Encoding Strawman 4d, version 0.96.  <span> [2005年10月16日]</span>. （原始內容存檔於2012年2月17日）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=Specification&amp;rft.genre=unknown&amp;rft.jtitle=General+Decimal+Arithmetic%3A+Encoding+Strawman+4d%2C+version+0.96&amp;rft_id=http%3A%2F%2Fwww2.hursley.ibm.com%2Fdecimal%2Fdcspec.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span> — 一個包含有負零的「十進位」浮點數規範</li></ul><h2><span id=".E5.BB.B6.E4.BC.B8.E9.98.85.E8.AF.BB"></span><span id="延伸阅读">延伸閱讀</span></h2>
<ul><li><cite class="citation web">Michael Ingrassia. Fortran 95 SIGN Change. Sun Developer Network.  <span> [2005年10月15日]</span>. （原始內容存檔於2012年2月17日）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=Fortran+95+SIGN+Change&amp;rft.au=Michael+Ingrassia&amp;rft.genre=unknown&amp;rft.jtitle=Sun+Developer+Network&amp;rft_id=http%3A%2F%2Fdevelopers.sun.com%2Fprodtech%2Fcc%2Farticles%2Fsign.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>——Fortran語言中（Fortran 95）<code>SIGN</code> 函式的一個變化以適應負零</li>
<li><cite class="citation web">JScript data types. MSDN JScript.  <span> [2005年10月16日]</span>. （原始內容存檔於2005年11月10日）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=JScript+data+types&amp;rft.genre=unknown&amp;rft.jtitle=MSDN+JScript&amp;rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Flibrary%2Fen-us%2Fscript56%2Fhtml%2Fjs56jscondatatype.asp&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>——JScript的浮點數從定義上即包括負零</li>
<li><cite class="citation web">A look at the floating-point support of the Java virtual machine. Javaworld.  <span> [2005年10月16日]</span>. （原始內容存檔於2012年2月17日）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=A+look+at+the+floating-point+support+of+the+Java+virtual+machine&amp;rft.genre=unknown&amp;rft.jtitle=Javaworld&amp;rft_id=http%3A%2F%2Fwww.javaworld.com%2Fjavaworld%2Fjw-10-1996%2Fjw-10-hood.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>——Java虛擬機器中負零的表示法</li>
<li><cite class="citation journal">Bruce Dawson. Comparing floating point numbers.  <span> [<span>2007-07-07</span>]</span>. （原始內容存檔於2007-07-03）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=Comparing+floating+point+numbers&amp;rft.au=Bruce+Dawson&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.cygnus-software.com%2Fpapers%2Fcomparingfloats%2Fcomparingfloats.htm&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>——在比較浮點數時是怎麼處理負零的</li>
<li><cite class="citation web">John Walker. Minus Zero. UNIVAC Memories.  <span> [2005年10月17日]</span>. （原始內容存檔於2012年2月17日）.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E2%88%920&amp;rft.atitle=Minus+Zero&amp;rft.au=John+Walker&amp;rft.genre=unknown&amp;rft.jtitle=UNIVAC+Memories&amp;rft_id=http%3A%2F%2Fwww.fourmilab.ch%2Fdocuments%2Funivac%2Fminuszero.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"><span> </span></span>——UNIVAC® 1100 系列電腦中的一補數</li></ul><h2><span id=".E5.8F.82.E8.A7.81"></span><span id="参见">參見</span></h2>
<ul><li>0</li>
<li>數學</li>
<li>電腦科學</li>
<li>程式語言</li></ul>
**−0** 或**負零**代表 **0** 的相反數，等於 0。特定情況下，−0 可能具有特殊意義。
在電腦科學中，−0 主要用來表達浮點數，以及在某些時候對整數進行有符號數處理。

在普通應用中，−0 有可能被用來表示一個可以四捨五入為零的負數，或者是一個從負方向上趨近於零的數。

在統計力學中，特定的系統在反轉分布的狀態下，可以被認為擁有−0 的絕對溫度。

## 電腦科學

### 表示法

在對於整數的 1+7 位元的符號數值表示法中，負零是用二進位代碼 10000000 表示的。在 8 位元一補數中，負零是用二進位代碼 11111111 表示，但二補數表示法則沒有負零的概念。在 IEEE 754 二進位浮點數算術標準中，指數和尾數為零、符號位元為一的數就是負零。

在 IBM 的普通十進位算數編碼規範中，運用十進位來表示浮點數。這裡負零被表示為指數為編碼內任意合法數值、所有係數均為零、符號位元為一的數。

### 性質與處理

在程式語言，例如 C、C#、C++ 和 Java，一個表達式的結果可能是負零（比如對一個負數算術下溢時的結果），此時負零和正零是等效的。因此一個簡單的比較不能夠確定一個數是負零。確定一個數是負零的辦法包括：

1. 使用 IEEE 754 中定義的 `copysign()` 函式複製零的符號到任意非零的數上。
2. 用一個正數來除以這個零 —— 得到的無窮能夠反映出零的符號
   * ${\frac {x}{+0}}=+\infty $ (x>0)
  * ${\frac {x}{-0}}=-\infty $ (x>0)
3. 在 Java 中，用 `Double` 類中的 equals 方法，能夠分辨出正零和負零，例如：
  * Double negativeZero = new Double(-0.0); 
  negativeZero.equals (-0.0); // 結果：真 
  negativeZero.equals (0.0); // 結果：假
4. 在 C 語言中，使用一個依賴於本地硬體表示法的不方便的辦法。例： `*(int *)&var == 0x80000000`（var 在 IEEE 754 中編碼單精度）。

其他對於負零的運算有：

 * ${\frac {-0}{x}}=-0$ (x>0)
* ${\frac {-0}{x}}=+0$ (x<0)
* ${\frac {+0}{x}}=-0$ (x<0)
* ${\frac {-0}{+\infty }}=-0$
* ${\frac {-0}{-\infty }}=+0$
* ${\frac {+0}{-\infty }}=-0$
* $(-0)\cdot (-0)=+0$
* $(-0)-(+0)=-0$
* $(-0)-(-0)=0$
* $(+0)+(-0)=0$
* $(-0)+(-0)=-0$
* $x\cdot (-0)=-0$ (x>0)
* $x+(-0)=x$

## 自然科學

在氣象學中，處於統計學的原因，−0 常常用來表示一個低於零度卻又不足以約分成 - 1 的溫度（無論華氏溫標還是攝氏溫標），比如−0.2 度，它不能被列為零度因為零度顯然不會小於零。然而低於零度的天數往往是比較冬季寒冷程度的一個基本統計資料，所以它並不能被忽略。不過它又沒有低到能夠約分為 - 1 度，所以就被記錄為−0 度。

在統計力學中，一個系統可能會有負的絕對溫度，但是和直覺相反，這並不是極端寒冷，反而是極端炎熱，比任何一個正的溫度都要高 (意指−0 = 無限)。在相關文獻裡，−0 就是最高的溫度。

## 參考資料

* Floating point types. MSDN C# 語言詳述. [2005 年 10 月 15 日]. （原始內容存檔於 2006 年 8 月 24 日）.
* Division operator. MSDN C# 語言詳述. [2005 年 10 月 15 日]. （原始內容存檔於 2005 年 11 月 21 日）.
* Thomas Wang. Java Floating-Point Number Intricacies. 2000 年 3 月 [2007-07-07]. （原始內容存檔於 2005-09-21）.
* Specification. General Decimal Arithmetic: Encoding Strawman 4d, version 0.96. [2005 年 10 月 16 日]. （原始內容存檔於 2012 年 2 月 17 日）.  — 一個包含有負零的「十進位」浮點數規範

## 延伸閱讀

* Michael Ingrassia. Fortran 95 SIGN Change. Sun Developer Network. [2005 年 10 月 15 日]. （原始內容存檔於 2012 年 2 月 17 日）. ——Fortran 語言中（Fortran 95）`SIGN` 函式的一個變化以適應負零
* JScript data types. MSDN JScript. [2005 年 10 月 16 日]. （原始內容存檔於 2005 年 11 月 10 日）. ——JScript 的浮點數從定義上即包括負零
* A look at the floating-point support of the Java virtual machine. Javaworld. [2005 年 10 月 16 日]. （原始內容存檔於 2012 年 2 月 17 日）. ——Java 虛擬機器中負零的表示法
* Bruce Dawson. Comparing floating point numbers. [2007-07-07]. （原始內容存檔於 2007-07-03）. —— 在比較浮點數時是怎麼處理負零的
* John Walker. Minus Zero. UNIVAC Memories. [2005 年 10 月 17 日]. （原始內容存檔於 2012 年 2 月 17 日）. ——UNIVAC® 1100 系列電腦中的一補數

## 參見

* 0
* 數學
* 電腦科學
* 程式語言
-0