Cách làm tròn số trong java

Mình đang giải quyết 1 bài tập java cần phải làm tròn 1 số .
Bây giờ mình nhập 1 số . VD: 4.23 thì làm tròn xuống là 4.
Còn khi nhập 4.6 thì làm tròn lên thành 5 .
Có cách nào tối ưu không ạ !!

Dùng Math.round nhé

1 Like

Nhưng cấu hỏi cơ bản này, mình nghĩ bạn nên học cách search google, cho nhanh và hiệu quả, tiết kiệm thời gian cho bạn!

http://www.tutorialspoint.com/java/number_round.htm

1 Like

mình đã search chỉ muốn đặt câu hỏi thêm cho ai chưa biết có thể tham khảo thôi

1 Like

Nếu bạn muốn làm tròn như thế này
4.4654545 -> 4.5 thì có thể dùng cách:
Math.round(4.4654545*10)/10 nhá :smile:

Tương tự là muốn lấy 2 số thập phân thì nhân có 100, lấy 3 số thì nhân cho 1000 rồi làm tròn, làm tròn xong thì chia lại con số vừa nhân

P/S: Chủ yếu biết thêm thôi :smiley:

2 Likes

Theo ví dụ của bạn thì dùng cách này đc ko : int n=(int)(n+0.5)

Ngoài ra còn có
Math.ceil(2.1)=3
Math.floor(2.6)=2

minh lam theo nhu ban noi va van k ra ket qua

Có, vì những câu như thế này search cái là ra, kết quả đầy trên google, không đến lượt DayNhauHoc.

Mấy đáp án trên nếu dùng cho winform thì khi cài sang 1 vài máy khác sẽ có 1 số máy tính không làm tròn
Đây mới là code c# chuẩn nhất mà mình dùng để làm phần mềm QLTD:

//using System.Globalization;
var value = item["diemSo"].ToString();
double convertedValue = Double.Parse(value, CultureInfo.InvariantCulture);
convertedValue= Math.Round(convertedValue, 2, MidpointRounding.AwayFromZero); 
// convertedValue là số làm tròn
        System.out.println("Điểm trung bình lớp: " + (double)Math.round((sum/count)*100)/100 );

cách này mới đc

Hi all… emmới tham gia.
cũng là vấn đề làm tròn số. nhưng từ số a =10, kết quả yêu cầu là 10.00 (làm tròn đến 2 chữ số thập phân).

em đã thử các cách mà mn gợi ý: round, ceil. Nhưng kết quả luôn là 10.0 @@
Mong mn giúp em với chứ bế tắc lắm rồi @@

Theo quy tắc toán học thì làm gì có số 10.00.

3 Likes

Cái này là định dạng xuất rồi :smiley:

3 Likes

À okie rồi ạ… chỉ cần làm định dạng như trong C là okie rồi ^^
Cám ơn mọi người^^

Thế bạn thử định dạng a là double hoặc float. rồi phần in dung print f(" %2.2f ", a ) xem sao

java mà bạn, ý của bạn đang là c/c++

mình đang nói java mà, trong java vẫn có định dạng in ma system.out.prinf ( “%3.2f”, a), ví dụ vậy mà bạn, bạn xem lại thử đúng ko?

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?