Decimal.Floor(Decimal) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Округляет заданное число типа Decimal до ближайшего целого в направлении минус бесконечности.
public:
static System::Decimal Floor(System::Decimal d);
public:
static System::Decimal Floor(System::Decimal d) = System::Numerics::IFloatingPoint<System::Decimal>::Floor;
public static decimal Floor (decimal d);
static member Floor : decimal -> decimal
Public Shared Function Floor (d As Decimal) As Decimal
Параметры
- d
- Decimal
Округляемое значение.
Возвращаемое значение
Если параметр d
имеет дробную часть — следующее целое число Decimal в направлении минус бесконечности меньше d
.
-или-
Если у параметра d
нет дробной части, значение параметра d
возвращается без изменений. Обратите внимание, что этот метод возвращает целочисленное значение типа Decimal.
Реализации
Примеры
В следующем примере показан Floor метод и он контрастирует с методом Ceiling .
using System;
public class Example
{
public static void Main()
{
decimal[] values = {12.6m, 12.1m, 9.5m, 8.16m, .1m, -.1m, -1.1m,
-1.9m, -3.9m};
Console.WriteLine("{0,-8} {1,10} {2,10}\n",
"Value", "Ceiling", "Floor");
foreach (decimal value in values)
Console.WriteLine("{0,-8} {1,10} {2,10}", value,
Decimal.Ceiling(value), Decimal.Floor(value));
}
}
// The example displays the following output:
// Value Ceiling Floor
//
// 12.6 13 12
// 12.1 13 12
// 9.5 10 9
// 8.16 9 8
// 0.1 1 0
// -0.1 0 -1
// -1.1 -1 -2
// -1.9 -1 -2
// -3.9 -3 -4
open System
let values =
[ 12.6m; 12.1m; 9.5m; 8.16m; 0.1m; -0.1m; -1.1m; -1.9m; -3.9m ]
printfn "%-8s %10s %10s\n" "Value" "Ceiling" "Floor"
for value in values do
printfn $"%-8O{value} %10O{Decimal.Ceiling value} %10O{Decimal.Floor value}"
// The example displays the following output:
// Value Ceiling Floor
//
// 12.6 13 12
// 12.1 13 12
// 9.5 10 9
// 8.16 9 8
// 0.1 1 0
// -0.1 0 -1
// -1.1 -1 -2
// -1.9 -1 -2
// -3.9 -3 -4
Module Example
Public Sub Main()
Dim values() As Decimal = {12.6d, 12.1d, 9.5d, 8.16d, .1d, -.1d,
-1.1d, -1.9d, -3.9d}
Console.WriteLine("{0,-8} {1,10} {2,10}",
"Value", "Ceiling", "Floor")
Console.WriteLine()
For Each value As Decimal In values
Console.WriteLine("{0,-8} {1,10} {2,10}", value,
Decimal.Ceiling(value), Decimal.Floor(value))
Next
End Sub
End Module
' The example displays the following output:
' Value Ceiling Floor
'
' 12.6 13 12
' 12.1 13 12
' 9.5 10 9
' 8.16 9 8
' 0.1 1 0
' -0.1 0 -1
' -1.1 -1 -2
' -1.9 -1 -2
' -3.9 -3 -4
Комментарии
Поведение этого метода соответствует стандарту IEEE 754, раздел 4. Такой тип округления иногда называют округлением в сторону отрицательной бесконечности. Другими словами, если d
является положительным, любой дробный компонент усекается. Если d
является отрицательным, то наличие любого дробного компонента приводит к тому, что он округляется до меньшего целого числа. Операция этого метода отличается от Ceiling метода , который поддерживает округление до положительной бесконечности.