Разница между Math.Floor() и Math.Truncate()

Перейдите по этим ссылкам, чтобы mathematical просмотреть описания MSDN:

  • Math.Floor, который округляет до отрицательной бесконечности.
  • Math.Ceiling, который округляет до положительной бесконечности.
  • Math.Truncate, который округляет в большую или меньшую сторону до нуля.
  • Math.Round, который округляет до ближайшего целого числа или указанного количества десятичных знаков. Вы можете указать поведение, если оно точно равноудалено между двумя вариантами, например округление, чтобы последняя цифра была четной («Round(2.5,MidpointRounding.ToEven)» стала 2) или чтобы она дальше от нуля («Round(2.5,MidpointRounding.AwayFromZero)» стала 3).

Следующая mathematics диаграмма и таблица могут maths помочь:

-3        -2        -1         0         1         2         3
 +--|------+---------+----|----+--|------+----|----+-------|-+
    a                     b       c           d            e

                       a=-2.7  b=-0.5  c=0.3  d=1.5  e=2.8
                       ======  ======  =====  =====  =====
Floor                    -3      -1      0      1      2
Ceiling                  -2       0      1      2      3
Truncate                 -2       0      0      1      2
Round (ToEven)           -3       0      0      2      3
Round (AwayFromZero)     -3      -1      0      2      3

Обратите внимание, что math Round намного мощнее, чем кажется, просто .net-framework потому, что он может округлять .net-framework до определенного количества .net десятичных знаков. Все остальные arithmetic числа всегда округляются maths до нуля. Например:

n = 3.145;
a = System.Math.Round (n, 2, MidpointRounding.ToEven);       // 3.14
b = System.Math.Round (n, 2, MidpointRounding.AwayFromZero); // 3.15

С другими .net-framework функциями вы должны использовать dot-net уловку умножения / деления mathematical для достижения того же эффекта:

c = System.Math.Truncate (n * 100) / 100;                    // 3.14
d = System.Math.Ceiling (n * 100) / 100;                     // 3.15

.net

math

2022-10-21T12:06:20+00:00