2010-08-02 49 views
10

Tôi có biến số như float num = (x/y); Tôi cần làm tròn kết quả mỗi khi num cho kết quả như 34.443. Vì vậy, làm thế nào để làm điều này trong C#?Cách làm tròn một số

Trả lời

25

Sử dụng Math.Ceiling:

Trả về số nguyên nhỏ nhất lớn hơn hơn hoặc bằng số lượng quy định

Lưu ý rằng điều này hoạt động trên đôi, vì vậy nếu bạn muốn có một phao (hay một số nguyên) bạn sẽ cần phải đúc.

float num = (float)Math.Ceiling(x/y); 
+2

Nếu cả hai 'x' và 'y' là các số nguyên, họ sẽ được rút ngắn. – Zaz

+0

@Josh: Đúng vậy. Tôi cho rằng OP đã có nổi từ kết quả là 34.443, nhưng nó chắc chắn đáng để gọi điều đó một cách rõ ràng. – Quartermeister

+0

Trần hoặc Sàn theo yêu cầu ... –

2

Sử dụng Math.Ceiling nếu bạn muốn số nguyên lớn hơn câu trả lời, hoặc Math.Floor nếu bạn muốn một số nguyên ít hơn câu trả lời.

Ví dụ

Math.Ceiling(3.46) = 4; 
Math.Floor(3.46) = 3; 

Sử dụng bất cứ là cần thiết cho trường hợp của bạn.

+0

+1 đẹp ......... –

5
float num = (x/y); 
float roundedValue = (float)Math.Round(num, 2); 

Nếu chúng tôi sử dụng hàm Math.Round, chúng tôi có thể chỉ định không có địa điểm nào để làm tròn.

+0

'Math.Ceiling' -" Tôi cần làm tròn ** lên ** ... " – Zaz

1

nếu bạn cần 2 chữ số thập phân, yo có thể sử dụng một cái gì đó như:

float roundedvalue = (float)Math.Ceiling(x*100/y) /100; 
float roundedvalue = (float)Math.Floor(x*100/y) /100; 
Các vấn đề liên quan