Làm tròn số thập phân trong C++

VD lấy 1/3=0.333333 thì muốn làm tròn phải làm sao ạ ( 2 chữ số chẳng hạn)
em tự C mới qua C++ dùng cout or cin mà mấy cái căn bản nó khó hiểu như printf("…=%.1f",a); là có rồi mà h qua C++ k biết

http://www.cplusplus.com/reference/ios/ios_base/precision/

1 Like

mình nhấp 1 số rồi lấy đó bạn ơi đừng có gán già trị :frowning:

Hình như hàm này http://www.cplusplus.com/reference/iomanip/setprecision/
trong thư viện iomanip giúp định dạng bao nhiêu chữ số thập phân được in ra thì phải.

cảm ơn nhiều nhé từ C qua C++ có vài vấn đề nhỏ thôi tại dùng VS2010 vẫn dùng printf đc nhưng nghe có nguoi nói dùng cout cin nó có nhiều cái lợi hơn

1 Like

dùng fixed và setprecision

1 Like

Có 2 cách để làm tròn.
Cách 1 là chỉ dùng để hiển thị thì sử dụng thư viện iomanip và dùng 2 hàm setprecision. Cách này chỉ có hiển thị số lên màn hình thôi nhé bạn. Ví dụ như là x = 2.46 bạn dùng nó và cho phép hiển làm tròn sau dấu phẩy 1 chữ số thì sẽ là 2.5. Nhưng biến x vẫn là 2.46. Nếu bạn đem so sánh x với 2.5 sẽ thấy ngay là kết quả là nhỏ hơn.

Cách 2 là tác động trực tiếp lên biến. Ở đây mình sẽ lấy luôn ví dụ là làm tròn đến chữ số thứ nhất của trường hợp trên. Nếu đề bài yêu cầu bạn làm đến số thứ 2 hay 3 cũng tương tự thôi . Bạn đọc để ngẫm code nhé.
float x = 2.46;
int y = (int) x;
x = x*10 +0.5;
x = (int) x;
x = x+y;
Output: x = 2.5;

3 Likes

Bạn chắc là code của bạn đúng không?

ví dụ mình sqrt(a) và làm tròn nó lên 1 chữ số phần thập phân rồi sử dụng gán nó vào 1 biến để dùng thì phải làm như nào ạ

Có vẻ với bộ là 2.55 kết quả không được như mong muốn thì phải

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