Math.IEEERemainder(Double, Double) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne le reste de la division d'un nombre spécifié par un autre.
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
Paramètres
- x
- Double
Dividende.
- y
- Double
Diviseur.
Retours
Nombre égal à x
- (y
Q), où Q est le quotient de x
/ y
arrondi à l’entier le plus proche (si x
/ y
se trouve à égale distance de deux entiers, l’entier pair est retourné).
Si x
- (y
Q) est égal à zéro, la valeur retournée est +0 si x
est positif, ou -0 si x
est négatif.
Si y
= 0, NaN est retourné.
Exemples
L’exemple suivant compare le reste retourné par la IEEERemainder méthode avec le reste retourné par l’opérateur de reste.
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
open System
let showRemainders number1 number2 =
let formula = $"{number1} / {number2} = "
let ieeeRemainder = Math.IEEERemainder(number1, number2)
let remainder = number1 % number2
printfn $"{formula,-16} {ieeeRemainder,18} {remainder,20}"
printfn " IEEERemainder Remainder operator"
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
// 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
Remarques
Cette opération est conforme à l’opération restante définie à la section 5.1 de la norme ANSI/IEEE Std 754-1985 ; Norme IEEE pour binary Floating-Point arithmétique; Institute of Electrical and Electronics Engineers, Inc; 1985.
La IEEERemainder méthode n’est pas la même que l’opérateur de reste. Bien que les deux retournent le reste après division, les formules qu’ils utilisent sont différentes. La formule de la IEEERemainder méthode est la suivante :
IEEERemainder = dividend - (divisor * Math.Round(dividend / divisor))
En revanche, la formule de l’opérateur restant est la suivante :
Remainder = (Math.Abs(dividend) - (Math.Abs(divisor) *
(Math.Floor(Math.Abs(dividend) / Math.Abs(divisor))))) *
Math.Sign(dividend)