首頁  >  文章  >  Java  >  為什麼 Java 的模運算子對於負輸入回傳負結果?

為什麼 Java 的模運算子對於負輸入回傳負結果?

Patricia Arquette
Patricia Arquette原創
2024-11-02 04:50:02544瀏覽

Why Does Java's Modulo Operator Return Negative Results for Negative Inputs?

理解Java 中的模與餘數

在Java 中,模運算子(%) 計算一個數除以另一個數後的餘數。與 Python 的模運算子不同,Java 的模運算對於負輸入傳回負值。這可能會導致意外結果,如在 Python 和 Java 中計算 -1 % 2 時所示範的那樣。

解決差異

實作與Python 求模相同的行為Java 中的運算符,您可以採用以下技術:

  • 使用公式:應用公式(((-1 % 2) 2) % 2)始終獲得餘數為正。
  • 檢查負值: 檢查除法結果是否為負,而不是使用模運算子。如果是,則將分母加到結果中以獲得正值。

範例程式碼:

<code class="java">int i = (((-1 % 2) + 2) % 2);</code>

<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>

透過使用這些技術,您可以確保Java與Python 的模運算子的行為一致,並提供預期的正餘數值。

以上是為什麼 Java 的模運算子對於負輸入回傳負結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn