Поделиться через


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

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.