2014-09-22 39 views
5

Tôi cần làm tròn phao dương lên trên tới số nguyên gần nhất.Làm cách nào để làm tròn một phao dương lên số nguyên tiếp theo?

examples; 

1.0 rounds up to 1  
2.1 rounds up to 3 
3.5 rounds up to 4 
4.9 rounds up to 5 

tức là luôn luôn làm tròn.

+0

FWIW, làm tròn lên trên và gần nhất không tương thích. Bạn có nghĩa là chỉ cần làm tròn lên. –

+3

Điều gì nên -4,4 vòng tới? -5 hoặc -4? –

+1

Xem http://docwiki.embarcadero.com/Libraries/XE6/en/System.Math.Ceil –

Trả lời

13

Sử dụng chức năng Ceil từ đơn vị Math. Từ tài liệu:

Biến số vòng tới cực dương.

Gọi Ceil (như trần) để lấy số nguyên thấp nhất lớn hơn hoặc bằng X. Giá trị tuyệt đối của X phải nhỏ hơn MaxInt. Đối với dụ:

  • Ceil (-2,8) = -2
  • Ceil (2,8) = 3
  • Ceil (-1,0) = -1

tôi không thể cho biết liệu hành vi của Ceil có đáp ứng được kỳ vọng của bạn đối với các giá trị đầu vào tiêu cực hay không bởi vì bạn không chỉ định việc cần làm ở đó. Tuy nhiên, nếu Ceil không đáp ứng được kỳ vọng của bạn, bạn có thể dễ dàng viết chức năng đáp ứng nhu cầu của mình, bằng cách kết hợp Abs()Ceil()

+0

Đó là chính xác những gì tôi muốn, nhưng System.Math có sẵn trên win32 (hoặc .net chỉ)? – srayner

+3

Trên D2010, nó là đơn vị 'Math'. Trên DXE2 hoặc mới hơn, với các không gian tên, nó là 'System.Math'. –

Các vấn đề liên quan