Decimal.Modulus Operator
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Returns the remainder resulting from dividing two specified Decimal values.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared Operator Mod ( _
d1 As Decimal, _
d2 As Decimal _
) As Decimal
public static decimal operator %(
decimal d1,
decimal d2
)
Parameters
- d1
Type: System.Decimal
A Decimal (the dividend).
- d2
Type: System.Decimal
A Decimal (the divisor).
Return Value
Type: System.Decimal
The Decimal remainder resulting from dividing d1 by d2.
Exceptions
Exception | Condition |
---|---|
DivideByZeroException | d2 is zero. |
OverflowException | The return value is less than MinValue or greater than MaxValue. |
Examples
The following code example creates several pairs of Decimal values and calculates the remainders resulting from dividing the two values with the Modulus operator.
Module Example
Const dataFmt As String = "{0,-38}{1,31}"
Sub ShowDecimalProQuoRem(ByVal outputBlock As System.Windows.Controls.TextBlock, _
ByVal Left As Decimal, ByVal Right As Decimal)
outputBlock.Text &= String.Format(dataFmt, "Decimal Left", Left) & vbCrLf
outputBlock.Text &= String.Format(dataFmt, "Decimal Right", Right) & vbCrLf
outputBlock.Text &= String.Format(dataFmt, _
"Decimal.op_Multiply( Left, Right )", _
Decimal.op_Multiply(Left, Right)) & vbCrLf
outputBlock.Text &= String.Format(dataFmt, _
"Decimal.op_Division( Left, Right )", _
Decimal.op_Division(Left, Right)) & vbCrLf
outputBlock.Text &= String.Format(dataFmt, _
"Decimal.op_Modulus( Left, Right )", _
Decimal.op_Modulus(Left, Right)) & vbCrLf & vbCrLf
End Sub
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
' Create pairs of Decimal objects.
ShowDecimalProQuoRem(outputBlock, 1000D, 7D)
ShowDecimalProQuoRem(outputBlock, -1000D, 7D)
ShowDecimalProQuoRem(outputBlock, _
New Decimal(1230000000, 0, 0, False, 7), _
0.00123D)
ShowDecimalProQuoRem(outputBlock, 12345678900000000D, _
0.0000000012345678D)
ShowDecimalProQuoRem(outputBlock, 123456789.0123456789D, _
123456789.1123456789D)
End Sub
End Module
' The example displays the following output:
' Decimal Left 1000
' Decimal Right 7
' Decimal.op_Multiply( Left, Right ) 7000
' Decimal.op_Division( Left, Right ) 142.85714285714285714285714286
' Decimal.op_Modulus( Left, Right ) 6
'
' Decimal Left -1000
' Decimal Right 7
' Decimal.op_Multiply( Left, Right ) -7000
' Decimal.op_Division( Left, Right ) -142.85714285714285714285714286
' Decimal.op_Modulus( Left, Right ) -6
'
' Decimal Left 123.0000000
' Decimal Right 0.00123
' Decimal.op_Multiply( Left, Right ) 0.151290000000
' Decimal.op_Division( Left, Right ) 100000.00
' Decimal.op_Modulus( Left, Right ) 0
'
' Decimal Left 12345678900000000
' Decimal Right 0.0000000012345678
' Decimal.op_Multiply( Left, Right ) 15241577.6390794200000000
' Decimal.op_Division( Left, Right ) 10000000729000059778004901.796
' Decimal.op_Modulus( Left, Right ) 0.000000000983
'
' Decimal Left 123456789.0123456789
' Decimal Right 123456789.1123456789
' Decimal.op_Multiply( Left, Right ) 15241578765584515.651425087878
' Decimal.op_Division( Left, Right ) 0.9999999991899999933660999449
' Decimal.op_Modulus( Left, Right ) 123456789.0123456789
// Example of the decimal multiplication, division, and modulus
// operators.
using System;
class Example
{
const string dataFmt = " {0,-18}{1,31}";
// Display decimal parameters and their product, quotient, and
// remainder.
public static void ShowDecimalProQuoRem(System.Windows.Controls.TextBlock outputBlock, decimal Left, decimal Right)
{
outputBlock.Text += "\n";
outputBlock.Text += String.Format(dataFmt, "decimal Left", Left) + "\n";
outputBlock.Text += String.Format(dataFmt, "decimal Right", Right) + "\n";
outputBlock.Text += String.Format(dataFmt, "Left * Right", Left * Right) + "\n";
outputBlock.Text += String.Format(dataFmt, "Left / Right", Left / Right) + "\n";
outputBlock.Text += String.Format(dataFmt, "Left % Right", Left % Right) + "\n";
}
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
outputBlock.Text +=
"This example of the decimal multiplication, division, " +
"and modulus \noperators generates the following " +
"output. It displays the product, \nquotient, and " +
"remainder of several pairs of decimal objects." + "\n";
// Create pairs of decimal objects.
ShowDecimalProQuoRem(outputBlock, 1000M, 7M);
ShowDecimalProQuoRem(outputBlock, -1000M, 7M);
ShowDecimalProQuoRem(outputBlock,
new decimal(1230000000, 0, 0, false, 7), 0.0012300M);
ShowDecimalProQuoRem(outputBlock, 12345678900000000M,
0.0000000012345678M);
ShowDecimalProQuoRem(outputBlock, 123456789.0123456789M,
123456789.1123456789M);
}
}
/*
This example of the decimal multiplication, division, and modulus
operators generates the following output. It displays the product,
quotient, and remainder of several pairs of decimal objects.
decimal Left 1000
decimal Right 7
Left * Right 7000
Left / Right 142.85714285714285714285714286
Left % Right 6
decimal Left -1000
decimal Right 7
Left * Right -7000
Left / Right -142.85714285714285714285714286
Left % Right -6
decimal Left 123.0000000
decimal Right 0.0012300
Left * Right 0.15129000000000
Left / Right 100000
Left % Right 0
decimal Left 12345678900000000
decimal Right 0.0000000012345678
Left * Right 15241577.6390794200000000
Left / Right 10000000729000059778004901.796
Left % Right 0.000000000983
decimal Left 123456789.0123456789
decimal Right 123456789.1123456789
Left * Right 15241578765584515.651425087878
Left / Right 0.9999999991899999933660999449
Left % Right 123456789.0123456789
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.