Udostępnij za pośrednictwem


Math.Floor Metoda

Definicja

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

Przeciążenia

Floor(Decimal)

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

Floor(Double)

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

Uwagi

Zachowanie tej metody jest zgodne ze standardem IEEE Standard 754, sekcja 4. Tego rodzaju zaokrąglanie jest czasami nazywane zaokrąglaniem w kierunku ujemnej nieskończoności.

Floor(Decimal)

Źródło:
Math.cs
Źródło:
Math.cs
Źródło:
Math.cs

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. Należy pamiętać, że metoda zwraca całkowitą wartość typu Decimal.

Przykłady

Poniższy przykład ilustruje metodę Math.Floor(Decimal) i kontrastuje ją z metodą 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

Uwagi

Zachowanie tej metody jest zgodne ze standardem IEEE Standard 754, sekcja 4. Tego rodzaju zaokrąglanie jest czasami nazywane zaokrąglaniem w kierunku ujemnej nieskończoności. Innymi słowy, jeśli d jest dodatnia, każdy składnik ułamkowy jest obcięty. 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 metody Ceiling, która obsługuje zaokrąglanie w kierunku dodatniej nieskończoności.

Zobacz też

Dotyczy

Floor(Double)

Źródło:
Math.cs
Źródło:
Math.cs
Źródło:
Math.cs

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 o podwójnej precyzji.

Zwraca

Największa wartość całkowita mniejsza lub równa d. Jeśli d 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 metodą 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

Uwagi

Zachowanie tej metody jest zgodne ze standardem IEEE Standard 754, sekcja 4. Tego rodzaju zaokrąglanie jest czasami nazywane zaokrąglaniem w kierunku ujemnej nieskończoności. Innymi słowy, jeśli d jest dodatnia, każdy składnik ułamkowy jest obcięty. 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 metody Ceiling, która obsługuje zaokrąglanie w kierunku dodatniej nieskończoności.

Począwszy od języka Visual Basic 15.8, wydajność konwersji podwójnej do liczby całkowitej jest zoptymalizowana, jeśli wartość zwracana przez metodę Floor do dowolnej z funkcji konwersji całkowitej , lub jeśli wartość podwójna zwrócona przez Floor jest automatycznie konwertowana na liczbę całkowitą z opcja ściśle ustawiona 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