We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

# ceil

## Summary

The Math.ceil() function returns the smallest integer greater than or equal to a number, that is

$Math.ceil(x)=⌈x⌉=min{y∊ℤ:y≥x}\mathtt{\operatorname{Math.ceil}(x)} = \left\lceil x \right\rceil = \min \left{ y \in \mathbb{Z} : y \geq x \right}$

## Syntax

Math.ceil(x)

### Parameters

x
A number.

## Description

Because ceil is a static method of Math, you always use it as Math.ceil(), rather than as a method of a Math object you created.

## Examples

### Example: Using Math.ceil

The following example shows example usage of Math.ceil().

Math.ceil(.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004) // 8

// Closure
(function(){

/**
* Decimal adjustment of a number.
*
* @param	{String}	type	The type of adjustment.
* @param	{Number}	value	The number.
* @param	{Integer}	exp		The exponent (the 10 logarithm of the adjustment base).
* @returns	{Number}			The adjusted value.
*/
// If the exp is undefined or zero...
if (typeof exp === 'undefined' || +exp === 0) {
return Math[type](value);
}
value = +value;
exp = +exp;
// If the value is not a number or the exp is not an integer...
if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
return NaN;
}
// Shift
value = value.toString().split('e');
value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
// Shift back
value = value.toString().split('e');
return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
}

// Decimal round
if (!Math.round10) {
Math.round10 = function(value, exp) {
};
}
// Decimal floor
if (!Math.floor10) {
Math.floor10 = function(value, exp) {
};
}
// Decimal ceil
if (!Math.ceil10) {
Math.ceil10 = function(value, exp) {
};
}

})();

// Round
Math.round10(55.55, -1); // 55.6
Math.round10(55.549, -1); // 55.5
Math.round10(55, 1); // 60
Math.round10(54.9, 1); // 50
Math.round10(-55.55, -1); // -55.5
Math.round10(-55.551, -1); // -55.6
Math.round10(-55, 1); // -50
Math.round10(-55.1, 1); // -60
// Floor
Math.floor10(55.59, -1); // 55.5
Math.floor10(59, 1); // 50
Math.floor10(-55.51, -1); // -55.6
Math.floor10(-51, 1); // -60
// Ceil
Math.ceil10(55.51, -1); // 55.6
Math.ceil10(51, 1); // 60
Math.ceil10(-55.59, -1); // -55.5
Math.ceil10(-59, 1); // -50


## Specifications

Specification Status Comment
ECMAScript 1st Edition. Implemented in JavaScript 1.0 Standard Initial definition.
ECMAScript Language Specification 5.1th Edition (ECMA-262) Standard
ECMAScript Language Specification 6th Edition (ECMA-262) Draft

## Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)