Math.Floor Metoda

Definicja

Zwraca największą wartość całkowitą mniejszą lub równą określonej liczbie.

Przeciążenia

Floor(Double)

Zwraca największą wartość całkowitą mniejszą lub równą określonej liczbie zmiennoprzecinkowej o podwójnej precyzji.

Floor(Decimal)

Zwraca największą wartość całkowitą mniejszą lub równą określonej liczbie dziesiętnej.

Uwagi

Zachowanie tej metody jest zgodne ze standardem IEEE 754, sekcja 4. Tego rodzaju zaokrąglenie jest czasami nazywane zaokrąglaniem kierunku minus nieskończoność.

Floor(Double)

Zwraca największą wartość całkowitą mniejszą lub równą określonej liczbie zmiennoprzecinkowej o podwójnej precyzji.

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

Parametry

d
Double

Liczba zmiennoprzecinkowa podwójnej precyzji.

Zwraca

Największa wartość całkowita mniejsza lub równa d. Jeśli d wartość jest równa NaN, NegativeInfinitylub PositiveInfinity, zwracana jest ta wartość.

Przykłady

Poniższy przykład ilustruje metodę Math.Floor(Double) i kontrastuje ją z Ceiling(Double) metodą .

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

Uwagi

Zachowanie tej metody jest zgodne ze standardem IEEE 754, sekcja 4. Tego rodzaju zaokrąglenie jest czasami nazywane zaokrąglaniem kierunku minus nieskończoność. Innymi słowy, jeśli d jest dodatni, każdy składnik ułamkowy jest obcinany. Jeśli d jest ujemna, obecność dowolnego składnika ułamkowego powoduje zaokrąglenie go do mniejszej liczby całkowitej. Operacja tej metody różni się od Ceiling metody , która obsługuje zaokrąglanie w kierunku nieskończoności dodatniej.

Począwszy od programu Visual Basic 15.8, wydajność konwersji podwójnej do liczby całkowitej jest zoptymalizowana, jeśli wartość zwracana przez Floor metodę do dowolnej funkcji konwersji całkowitej lub jeśli wartość podwójna zwracana przez Floor jest automatycznie konwertowana na liczbę całkowitą z opcją Ściśle ustawioną na wartość Wyłączone. Ta optymalizacja umożliwia szybsze uruchamianie kodu — nawet dwa razy szybciej w przypadku kodu, który wykonuje dużą liczbę konwersji na typy całkowite. Poniższy przykład ilustruje takie zoptymalizowane konwersje:

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

Zobacz też

Dotyczy

Floor(Decimal)

Zwraca największą wartość całkowitą mniejszą lub równą określonej liczbie dziesiętnej.

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

Parametry

d
Decimal

Liczba dziesiętna.

Zwraca

Największa wartość całkowita mniejsza lub równa d. Zwróć uwagę, że metoda zwraca wartość całkowitą typu Decimal.

Przykłady

Poniższy przykład ilustruje metodę Math.Floor(Decimal) i kontrastuje ją z Ceiling(Decimal) metodą .

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

Uwagi

Zachowanie tej metody jest zgodne ze standardem IEEE 754, sekcja 4. Tego rodzaju zaokrąglenie jest czasami nazywane zaokrąglaniem kierunku minus nieskończoność. Innymi słowy, jeśli d jest dodatni, każdy składnik ułamkowy jest obcinany. Jeśli d jest ujemna, obecność dowolnego składnika ułamkowego powoduje zaokrąglenie go do mniejszej liczby całkowitej. Operacja tej metody różni się od Ceiling metody , która obsługuje zaokrąglanie w kierunku nieskończoności dodatniej.

Zobacz też

Dotyczy