Hàm Math.ceil() trả về số nguyên nhỏ nhất có giá trị lớn hơn hoặc bằng số đã cho.

Lưu ý: Math.ceil(null) trả về số nguyên 0 và không đưa ra lỗi NaN.

Cú pháp

Math.ceil(x)

Tham số

x
Loại số liệu.

Giá trị trả về

Số nguyên nhỏ nhất có giá trị lớn hơn hoặc bằng số đã cho (bằng tham số).

Mô tả

Do ceil() là phương thức tĩnh của Math, nên ta phải khai báo là Math.ceil(), thay vì dùng nó như 1 phương thức của đối tượng được tạo ra từ Math (Math không phải hàm tạo).

Ví dụ

Cách dùng Math.ceil()

Ví dụ sau minh họa cách dùng Math.ceil() điển hình.

Math.ceil(.95);    // 1
Math.ceil(4);      // 4
Math.ceil(7.004);  // 8
Math.ceil(-0.95);  // -0
Math.ceil(-4);     // -4
Math.ceil(-7.004); // -7

Tinh chỉ số thập phân

// Đóng kín
(function() {
  /**
   * Tinh chỉ số thập phân của một con số.
   *
   * @param {String}  type  Loại điều chỉnh.
   * @param {Number}  value Số liệu.
   * @param {Integer} exp   Số mũ (the 10 logarithm of the adjustment base).
   * @returns {Number} Giá trị đã chỉnh sửa.
   */
  function decimalAdjust(type, value, exp) {
    // Nếu exp có giá trị undefined hoặc bằng không thì...
    if (typeof exp === 'undefined' || +exp === 0) {
      return Math[type](value);
    }
    value = +value;
    exp = +exp;
    // Nếu value không phải là ố hoặc exp không phải là số nguyên thì...
    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));
  }

  // Làm tròn số thập phân (theo mốc số 5)
  if (!Math.round10) {
    Math.round10 = function(value, exp) {
      return decimalAdjust('round', value, exp);
    };
  }
  // Làm tròn số thập phân (về gần giá trị 0)
  if (!Math.floor10) {
    Math.floor10 = function(value, exp) {
      return decimalAdjust('floor', value, exp);
    };
  }
  // Làm tròn số thập phân (ra xa giá trị 0)
  if (!Math.ceil10) {
    Math.ceil10 = function(value, exp) {
      return decimalAdjust('ceil', value, exp);
    };
  }
})();

// Chạy hàm 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
// Chạy hàm 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
// Chạy hàm 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

Thông số kỹ thuật

Thông số kỹ thuật Trạng thái Chú thích
ECMAScript 1st Edition (ECMA-262) Standard Định nghĩa đầu tiên được đưa vào JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.ceil' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.ceil' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.ceil' in that specification.
Draft  

Tính tương thích trên trình duyệt

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
ceilChrome Full support YesEdge Full support 12Firefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Xem thêm

Document Tags and Contributors

Những người đóng góp cho trang này: mdnwebdocs-bot, dangtu
Cập nhật lần cuối bởi: mdnwebdocs-bot,