# Math.Ceiling Method

## Definition

Important

Some information relates to prerelease product that may be substantially modified before itâ€™s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Returns the smallest integral value greater than or equal to the specified number.

## Overloads

Ceiling(Decimal) |
Returns the smallest integral value that is greater than or equal to the specified decimal number. |

Ceiling(Double) |
Returns the smallest integral value that is greater than or equal to the specified double-precision floating-point number. |

## Remarks

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

## Ceiling(Decimal)

Returns the smallest integral value that is greater than or equal to the specified decimal number.

```
public:
static System::Decimal Ceiling(System::Decimal d);
```

`public static decimal Ceiling (decimal d);`

`static member Ceiling : decimal -> decimal`

`Public Shared Function Ceiling (d As Decimal) As Decimal`

#### Parameters

- d
- Decimal

A decimal number.

#### Returns

The smallest integral value that is greater than or equal to `d`

. Note that this method returns a Decimal instead of an integral type.

### Examples

The following example illustrates the Math.Ceiling(Decimal) method and contrasts it with the Floor(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 positive infinity. In other words, if `d`

is positive, the presence of any fractional component causes `d`

to be rounded to the next highest integer. If `d`

is negative, the rounding operation causes any fractional component of `d`

to be discarded. The operation of this method differs from the Floor(Decimal) method, which supports rounding toward negative infinity.

### See also

### Applies to

## Ceiling(Double)

Returns the smallest integral value that is greater than or equal to the specified double-precision floating-point number.

```
public:
static double Ceiling(double a);
```

`public static double Ceiling (double a);`

`static member Ceiling : double -> double`

`Public Shared Function Ceiling (a As Double) As Double`

#### Parameters

- a
- Double

A double-precision floating-point number.

#### Returns

The smallest integral value that is greater than or equal to `a`

. If `a`

is equal to NaN, NegativeInfinity, or PositiveInfinity, that value is returned. Note that this method returns a Double instead of an integral type.

### Examples

The following example illustrates the Math.Ceiling(Double) method and contrasts it with the Floor(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 positive infinity. In other words, if `a`

is positive, the presence of any fractional component causes `a`

to be rounded to the next highest integer. If `a`

is negative, the rounding operation causes any fractional component of `a`

to be discarded. The operation of this method differs from the Floor(Double) method, which supports rounding toward negative infinity.

Starting with Visual Basic 15.8, the performance of Double-to-integer conversion is optimized if you pass the value returned by the `Ceiling`

method to the any of the integral conversion functions, or if the Double value returned by `Ceiling`

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: 1044
Dim d2 As Double = 7968.4136
Dim i2 As Integer = CInt(Math.Ceiling(d2)) ' Result: 7969
```