# Math.FloorMath.FloorMath.FloorMath.Floor Method

## Definition

Returns the largest integral value less than or equal to the specified number.

## Overloads

 Floor(Double) Floor(Double) Floor(Double) Floor(Double) Returns the largest integral value less than or equal to the specified double-precision floating-point number. Floor(Decimal) Floor(Decimal) Floor(Decimal) Floor(Decimal) Returns the largest integral value less than or equal to the specified decimal number.

## Examples

Note

The C# examples in this article run in the Try.NET inline code runner and playground. Select the Run button to run an example in an interactive window. Once you execute the code, you can modify it and run the modified code by selecting Run again. The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

## Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward negative infinity.

## Floor(Double)Floor(Double)Floor(Double)Floor(Double)

Returns the largest integral value less than or equal to the specified double-precision floating-point number.

``````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``

#### Parameters

d
Double Double Double Double

A double-precision floating-point number.

#### Returns

The largest integral value less than or equal to `d`. If `d` is equal to NaN, NegativeInfinity, or PositiveInfinity, that value is returned.

### Examples

The following example illustrates the Math.Floor(Double) method and contrasts it with the Ceiling(Double) method.

``````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
``````
``````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
``````

### Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward negative infinity. In other words, if `d` is positive, any fractional component is truncated. If `d` is negative, the presence of any fractional component causes it to be rounded to the smaller integer. The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

Starting with Visual Basic 15.8, the performance of Double-to-integer conversion is optimized if you pass the value returned by the `Floor` method to the any of the integral conversion functions, or if the Double value returned by `Floor` is automatically converted to an integer with Option Strict set to Off. This optimization allows code to run faster -- up to twice as fast for code that does a large number of conversions to integer types. The following example illustrates such optimized conversions:

``````Dim d1 As Double = 1043.75133
Dim i1 As Integer = CInt(Math.Ceiling(d1))        ' Result: 1043

Dim d2 As Double = 7968.4136
Dim i2 As Integer = CInt(Math.Ceiling(d2))        ' Result: 7968
``````
See also

## Floor(Decimal)Floor(Decimal)Floor(Decimal)Floor(Decimal)

Returns the largest integral value less than or equal to the specified decimal number.

``````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``

#### Parameters

d
Decimal Decimal Decimal Decimal

A decimal number.

#### Returns

The largest integral value less than or equal to `d`. Note that the method returns an integral value of type Decimal.

### Examples

The following example illustrates the Math.Floor(Decimal) method and contrasts it with the Ceiling(Decimal) method.

``````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
``````
``````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
``````

### Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward negative infinity. In other words, if `d` is positive, any fractional component is truncated. If `d` is negative, the presence of any fractional component causes it to be rounded to the smaller integer. The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

See also