Math.Floor Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает наибольшее целочисленное значение меньше или равно указанному числу.
Перегрузки
Floor(Decimal) |
Возвращает наибольшее целочисленное значение меньше или равно указанному десятичному числу. |
Floor(Double) |
Возвращает наибольшее целочисленное значение меньше или равно указанному числу с плавающей запятой двойной точности. |
Комментарии
Поведение этого метода следует стандарту IEEE 754, раздел 4. Этот вид округления иногда называется округлением в сторону отрицательной бесконечности.
Floor(Decimal)
- Исходный код:
- Math.cs
- Исходный код:
- Math.cs
- Исходный код:
- Math.cs
Возвращает наибольшее целочисленное значение меньше или равно указанному десятичному числу.
public:
static System::Decimal Floor(System::Decimal d);
public static decimal Floor (decimal d);
static member Floor : decimal -> decimal
Public Shared Function Floor (d As Decimal) As Decimal
Параметры
- d
- Decimal
Десятичное число.
Возвращаемое значение
Наибольшее целочисленное значение меньше или равно d
. Обратите внимание, что метод возвращает целочисленное значение типа Decimal.
Примеры
В следующем примере показан метод Math.Floor(Decimal) и контрастирует его с методом Ceiling(Decimal).
decimal[] values = {7.03m, 7.64m, 0.12m, -0.12m, -7.1m, -7.6m};
Console.WriteLine(" Value Ceiling Floor\n");
foreach (decimal value in values)
Console.WriteLine("{0,7} {1,16} {2,14}",
value, Math.Ceiling(value), Math.Floor(value));
// The example displays the following output to the console:
// Value Ceiling Floor
//
// 7.03 8 7
// 7.64 8 7
// 0.12 1 0
// -0.12 0 -1
// -7.1 -7 -8
// -7.6 -7 -8
// The ceil and floor functions may be used instead.
let values =
[ 7.03m; 7.64m; 0.12m; -0.12m; -7.1m; -7.6m ]
printfn " Value Ceiling Floor\n"
for value in values do
printfn $"{value,7} {Math.Ceiling value,16} {Math.Floor value,14}"
// The example displays the following output to the console:
// Value Ceiling Floor
//
// 7.03 8 7
// 7.64 8 7
// 0.12 1 0
// -0.12 0 -1
// -7.1 -7 -8
// -7.6 -7 -8
Dim values() As Decimal = {7.03d, 7.64d, 0.12d, -0.12d, -7.1d, -7.6d}
Console.WriteLine(" Value Ceiling Floor")
Console.WriteLine()
For Each value As Decimal In values
Console.WriteLine("{0,7} {1,16} {2,14}", _
value, Math.Ceiling(value), Math.Floor(value))
Next
' The example displays the following output to the console:
' Value Ceiling Floor
'
' 7.03 8 7
' 7.64 8 7
' 0.12 1 0
' -0.12 0 -1
' -7.1 -7 -8
' -7.6 -7 -8
Комментарии
Поведение этого метода следует стандарту IEEE 754, раздел 4. Этот вид округления иногда называется округлением в сторону отрицательной бесконечности. Другими словами, если d
положительно, любой дробный компонент усечен. Если d
отрицательно, наличие любого дробного компонента приводит к округление до меньшего целого числа. Операция этого метода отличается от метода Ceiling, который поддерживает округление к положительной бесконечности.
См. также раздел
Применяется к
Floor(Double)
- Исходный код:
- Math.cs
- Исходный код:
- Math.cs
- Исходный код:
- Math.cs
Возвращает наибольшее целочисленное значение меньше или равно указанному числу с плавающей запятой двойной точности.
public:
static double Floor(double d);
public static double Floor (double d);
static member Floor : double -> double
Public Shared Function Floor (d As Double) As Double
Параметры
- d
- Double
Число с плавающей запятой двойной точности.
Возвращаемое значение
Наибольшее целочисленное значение меньше или равно d
. Если d
равно NaN, NegativeInfinityили PositiveInfinity, возвращается это значение.
Примеры
В следующем примере показан метод Math.Floor(Double) и контрастирует его с методом Ceiling(Double).
double[] values = {7.03, 7.64, 0.12, -0.12, -7.1, -7.6};
Console.WriteLine(" Value Ceiling Floor\n");
foreach (double value in values)
Console.WriteLine("{0,7} {1,16} {2,14}",
value, Math.Ceiling(value), Math.Floor(value));
// The example displays the following output to the console:
// Value Ceiling Floor
//
// 7.03 8 7
// 7.64 8 7
// 0.12 1 0
// -0.12 0 -1
// -7.1 -7 -8
// -7.6 -7 -8
// The ceil and floor functions may be used instead.
let values =
[ 7.03; 7.64; 0.12; -0.12; -7.1; -7.6 ]
printfn " Value Ceiling Floor\n"
for value in values do
printfn $"{value,7} {Math.Ceiling value,16} {Math.Floor value,14}"
// The example displays the following output to the console:
// Value Ceiling Floor
//
// 7.03 8 7
// 7.64 8 7
// 0.12 1 0
// -0.12 0 -1
// -7.1 -7 -8
// -7.6 -7 -8
Dim values() As Double = {7.03, 7.64, 0.12, -0.12, -7.1, -7.6}
Console.WriteLine(" Value Ceiling Floor")
Console.WriteLine()
For Each value As Double In values
Console.WriteLine("{0,7} {1,16} {2,14}", _
value, Math.Ceiling(value), Math.Floor(value))
Next
' The example displays the following output to the console:
' Value Ceiling Floor
'
' 7.03 8 7
' 7.64 8 7
' 0.12 1 0
' -0.12 0 -1
' -7.1 -7 -8
' -7.6 -7 -8
Комментарии
Поведение этого метода следует стандарту IEEE 754, раздел 4. Этот вид округления иногда называется округлением в сторону отрицательной бесконечности. Другими словами, если d
положительно, любой дробный компонент усечен. Если d
отрицательно, наличие любого дробного компонента приводит к округление до меньшего целого числа. Операция этого метода отличается от метода Ceiling, который поддерживает округление к положительной бесконечности.
Начиная с Visual Basic 15.8, производительность преобразования double-to-integer оптимизирована, если передать значение, возвращаемое методом Floor
, любому из функций целочисленного преобразованияили если значение Double, возвращаемое Floor
, автоматически преобразуется в целое число со значением Option Strict задано значение Off. Эта оптимизация позволяет выполнять код быстрее — до двух раз быстрее для кода, выполняющего большое количество преобразований в целые типы. В следующем примере показаны такие оптимизированные преобразования:
Dim d1 As Double = 1043.75133
Dim i1 As Integer = CInt(Math.Floor(d1)) ' Result: 1043
Dim d2 As Double = 7968.4136
Dim i2 As Integer = CInt(Math.Floor(d2)) ' Result: 7968