30/09/2018, 16:51
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
Bài liên quan
http://www.cplusplus.com/reference/ios/ios_base/precision/
mình nhấp 1 số rồi lấy đó bạn ơi đừng có gán già trị
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
dùng fixed và setprecision
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;
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