**To compute a ceiling,** we invoke Math.ceil. This method receives, and returns, a double value. If passed a number with no fractional part, that number is returned unchanged.

**First example.** With this method, a number is always increased if it has a fractional part. It does not matter how close to the lower number the number is. It is increased by ceil().

**Double:** The important thing to understand about Math.ceil is that it receives a double and returns a double.

**Note:** We can pass a float to Math.ceil and the Java compiler will transform it to a double implicitly.

**Java program that uses Math.ceil**
import java.lang.Math;
public class Program {
public static void main(String[] args) {*
// Compute ceilings of these values.
*double value = __Math.ceil__(*1.1*);
double value2 = Math.ceil(*-0.9*);
System.out.println(value);
System.out.println(value2);
}
}
**Output**
2.0
-0.0

**Ceiling, floor study.** This program studies the result of floor and ceil. For numbers with no fractional part (like 1.0 or 2.0) we find that the ceiling and floor are equal.

**Thus:** There is no point in calling ceil or floor() on a number we already know has no fractional part.

**Java program that computes floors and ceilings**
public class Program {
public static void main(String[] args) {*
// Analyze these numbers.
*double[] values = { 1.0, 1.1, 1.5, 1.9, 2.0 };
for (double value : values) {*
// Compute the floor and the ceil for the number.
*double floor = __Math.floor__(value);
double ceil = __Math.ceil__(value);*
// See if the floor equals the ceil.
*boolean equal = floor == ceil;*
// Print the values.
*System.out.println(value + *", Floor = "* + floor +
*", Ceil = "* + ceil +
*", Equal = "* + equal);
}
}
}
**Output**
1.0, Floor = 1.0, Ceil = 1.0, Equal = true
1.1, Floor = 1.0, Ceil = 2.0, Equal = false
1.5, Floor = 1.0, Ceil = 2.0, Equal = false
1.9, Floor = 1.0, Ceil = 2.0, Equal = false
2.0, Floor = 2.0, Ceil = 2.0, Equal = true