共用方式為


Mod 運算子 (Visual Basic)

將兩個數字相除,只傳回餘數。

number1 Mod number2

組件

  • number1
    必要項。 任何數值運算式。

  • number2
    必要項。 任何數值運算式。

支援類型

所有數字型別 (Numeric Type)。 這包括不帶正負號和浮點型別,以及 Decimal。

結果

結果是 number1 除以 number2 後所留的餘數。 例如,運算式 14 Mod 4 會評估為 2。

備註

如果 number1 或 number2 是浮點數值,就會傳回除法運算的浮點數餘數。 結果的資料型別是可保留所有可能值的最小資料型別,這些可能值是由 number1 和 number2 之資料型別的除法運算所產生。

如果 number1 或 number2 評估為 Nothing,即視為零。

相關運算子包括下列幾項:

嘗試以零為除數

如果 number2 評估為零,則 Mod 運算子的行為會視運算元的資料型別而定。 整數類除法會擲回 DivideByZeroException 例外狀況。 浮點數除法會傳回 NaN

對等公式

運算式 a Mod b 等於下列公式:

a - (b * (a \ b))

a - (b * Fix(a / b))

浮點數非精度表示

使用浮點數值 (Floating-Point Number) 時,請記住它們在記憶體中不一定都會有精確的表示。 這樣可能會因為某些作業,例如值比較和 Mod 運算子,而導致無法預期的結果。 如需詳細資訊,請參閱疑難排解資料類型 (Visual Basic)

多載化

Mod 運算子可以「多載」,這表示類別或結構可以重新定義其行為。 如果您的程式碼套用 Mod 到包含多載之類別或結構的執行個體,請確定您了解它重新定義的行為。 如需詳細資訊,請參閱運算子程序 (Visual Basic)

範例

下列範例會使用 Mod 運算子,將兩數相除並只傳回餘數。 如果任一數值是浮點數值,則結果是代表餘數的浮點數值。

Debug.WriteLine(10 Mod 5)
' Output: 0
Debug.WriteLine(10 Mod 3)
' Output: 1
Debug.WriteLine(-10 Mod 3)
' Output: -1
Debug.WriteLine(12 Mod 4.3)
' Output: 3.4
Debug.WriteLine(12.6 Mod 5)
' Output: 2.6
Debug.WriteLine(47.9 Mod 9.35)
' Output: 1.15

下列範例示範浮點數運算元的潛在不精確情況。 在第一個陳述式中,運算元是 Double,而 0.2 是預存值為 0.20000000000000001 的無限重複二進位小數。 在第二個陳述式中,常值型別字元 D 會將兩個運算元強制為 Decimal,而 0.2 具有精確表示。

firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.

請參閱

工作

疑難排解資料類型 (Visual Basic)

參考

算術運算子 (Visual Basic)

Visual Basic 中的運算子優先順序

運算子 (依功能排列) (Visual Basic)

Int

Fix

\ 運算子 (Visual Basic)

概念

Visual Basic 的算術運算子