--- title: Math.ceil() slug: Web/JavaScript/Reference/Global_Objects/Math/ceil tags: - JavaScript - Math - Phương Thức - Tham khảo translation_of: Web/JavaScript/Reference/Global_Objects/Math/ceil ---
{{JSRef}}

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({{jsxref("null")}}) trả về số nguyên 0 và không đưa ra lỗi {{jsxref("NaN")}}.

{{EmbedInteractiveExample("pages/js/math-ceil.html")}}

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
{{SpecName('ES1')}} {{Spec2('ES1')}} Định nghĩa đầu tiên được đưa vào JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.6', 'Math.ceil')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-math.ceil', 'Math.ceil')}} {{Spec2('ES6')}}  
{{SpecName('ESDraft', '#sec-math.ceil', 'Math.ceil')}} {{Spec2('ESDraft')}}  

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

{{Compat("javascript.builtins.Math.ceil")}}

Xem thêm