閱讀英文

共用方式為


Math.IEEERemainder(Double, Double) 方法

定義

傳回指定數字除以另一個指定數字所得的餘數。

C#
public static double IEEERemainder(double x, double y);

參數

x
Double

被除數。

y
Double

除數。

傳回

等於 x - ( y Q) 的數字,其中 Q 是捨入至最接近整數的 x / y 商數 (如果 x / y 是兩個整數的中間數,則會傳回偶數整數)。

如果 x - ( y Q) 為零,則在 x 為正時傳回值 +0,或在 x 為負時傳回 -0。

如果 y = 0,則傳回 NaN

範例

下列範例會將 方法傳 IEEERemainder 回的餘數與 餘數運算子所傳回的餘數相比較。

C#
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

備註

此作業符合 ANSI/IEEE Std 754-1985 第 5.1 節中定義的餘數作業;二進位Floating-Point算術的 IEEE 標準;電子與電子工程師協會, Inc;1985.

方法 IEEERemainder餘數運算子不同。 雖然兩者都會在除法之後傳回餘數,但它們使用的公式不同。 方法的 IEEERemainder 公式為:

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

相反地,餘數運算子的公式為:

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

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0