Разница между 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
Разница между Math.Floor() и Math.Truncate()
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.