Math.IEEERemainder(Double, Double) Methode

Definition

Gibt den Rest der Division zweier angegebener Zahlen zurück.Returns the remainder resulting from the division of a specified number by another specified number.

public:
 static double IEEERemainder(double x, double y);
public static double IEEERemainder (double x, double y);
static member IEEERemainder : double * double -> double
Public Shared Function IEEERemainder (x As Double, y As Double) As Double

Parameter

x
Double

Ein Dividend.A dividend.

y
Double

Ein Divisor.A divisor.

Gibt zurück

Eine Zahl gleich x – (y Q), wobei Q der auf die nächste ganze Zahl gerundete Quotient von x / y ist (wenn x / y genau in der Mitte zwischen zwei ganzen Zahlen liegt, wird die gerade ganze Zahl zurückgegeben).A number equal to x - (y Q), where Q is the quotient of x / y rounded to the nearest integer (if x / y falls halfway between two integers, the even integer is returned).

Wenn x - (yQ) gleich 0 ist, wird bei positivem x +0 und bei negativem x -0 zurückgegeben.If x - (y Q) is zero, the value +0 is returned if x is positive, or -0 if x is negative.

Wenn y = 0 ist, wird NaN zurückgegeben.If y = 0, NaN is returned.

Beispiele

Im folgenden Beispiel wird der Rest, der von IEEERemainder der-Methode zurückgegeben wird, mit dem Rest, der vom Restoperatorzurückgegeben wurdeThe following example contrasts the remainder returned by the IEEERemainder method with the remainder returned by the remainder operator.

using System;

public class Example
{
   public static void Main()
   {
      Console.WriteLine($"{"IEEERemainder",35} {"Remainder operator",20}");
      ShowRemainders(3, 2);
      ShowRemainders(4, 2);
      ShowRemainders(10, 3);
      ShowRemainders(11, 3);
      ShowRemainders(27, 4);
      ShowRemainders(28, 5);
      ShowRemainders(17.8, 4);
      ShowRemainders(17.8, 4.1);
      ShowRemainders(-16.3, 4.1);
      ShowRemainders(17.8, -4.1);
      ShowRemainders(-17.8, -4.1);
   }

   private static void ShowRemainders(double number1, double number2)
   {
      var formula = $"{number1} / {number2} = ";
      var ieeeRemainder = Math.IEEERemainder(number1, number2);
      var remainder = number1 % number2;
      Console.WriteLine($"{formula,-16} {ieeeRemainder,18} {remainder,20}");
   }
}
// The example displays the following output:
//       
//
//                       IEEERemainder   Remainder operator
// 3 / 2 =                          -1                    1
// 4 / 2 =                           0                    0
// 10 / 3 =                          1                    1
// 11 / 3 =                         -1                    2
// 27 / 4 =                         -1                    3
// 28 / 5 =                         -2                    3
// 17.8 / 4 =                      1.8                  1.8
// 17.8 / 4.1 =                    1.4                  1.4
// -16.3 / 4.1 =    0.0999999999999979                   -4
// 17.8 / -4.1 =                   1.4                  1.4
// -17.8 / -4.1 =                 -1.4                 -1.4
Module Example
    Public Sub Main()
        Console.WriteLine($"{"IEEERemainder",35} {"Remainder operator",20}")
        ShowRemainders(3, 2)
        ShowRemainders(4, 2)
        ShowRemainders(10, 3)
        ShowRemainders(11, 3)
        ShowRemainders(27, 4)
        ShowRemainders(28, 5)
        ShowRemainders(17.8, 4)
        ShowRemainders(17.8, 4.1)
        ShowRemainders(-16.3, 4.1)
        ShowRemainders(17.8, -4.1)
        ShowRemainders(-17.8, -4.1)
    End Sub

    Private Sub ShowRemainders(number1 As Double, number2 As Double)
        Dim formula As String = $"{number1} / {number2} = "
        Dim ieeeRemainder As Double = Math.IEEERemainder(number1, number2)
        Dim remainder As Double = number1 Mod number2
        Console.WriteLine($"{formula,-16} {ieeeRemainder,18} {remainder,20}")
    End Sub
End Module
' The example displays the following output:
'       
'                       IEEERemainder   Remainder operator
' 3 / 2 =                          -1                    1
' 4 / 2 =                           0                    0
' 10 / 3 =                          1                    1
' 11 / 3 =                         -1                    2
' 27 / 4 =                         -1                    3
' 28 / 5 =                         -2                    3
' 17.8 / 4 =                      1.8                  1.8
' 17.8 / 4.1 =                    1.4                  1.4
' -16.3 / 4.1 =    0.0999999999999979                   -4
' 17.8 / -4.1 =                   1.4                  1.4
' -17.8 / -4.1 =                 -1.4                 -1.4

Hinweise

Dieser Vorgang entspricht dem Rest-Vorgang, der im Abschnitt 5,1 von ANSI/IEEE Std 754-1985 definiert ist. IEEE-Standard für binäre Gleit Komma Arithmetik; Institute of Electrical and Electronics Engineers, Inc. 1985.This operation complies with the remainder operation defined in Section 5.1 of ANSI/IEEE Std 754-1985; IEEE Standard for Binary Floating-Point Arithmetic; Institute of Electrical and Electronics Engineers, Inc; 1985.

Die IEEERemainder -Methode ist nicht identisch mit dem Rest-Operator.The IEEERemainder method is not the same as the remainder operator. Obwohl beide den Rest nach der Division zurückgeben, unterscheiden sich die von Ihnen verwendeten Formeln.Although both return the remainder after division, the formulas they use are different. Die Formel für die IEEERemainder -Methode lautet wie folgt:The formula for the IEEERemainder method is:

IEEERemainder = dividend - (divisor * Math.Round(dividend / divisor))  

Im Gegensatz dazu ist die Formel für den Rest-Operator:In contrast, the formula for the remainder operator is:

Remainder = (Math.Abs(dividend) - (Math.Abs(divisor) *   
            (Math.Floor(Math.Abs(dividend) / Math.Abs(divisor))))) *   
            Math.Sign(dividend)  

Gilt für: