Поделиться через


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

См. также раздел

Применяется к