30/09/2018, 16:04
[Wiki] Cách làm tròn số thực trong C++
Trên FB có một bạn hỏi: "trong C++ làm tròn số thập phân như thế nào? Như 1.23456789 làm tròn 2 số là 1.24.
#include <iostream>
#include <math.h>
int main()
{
double val = 1.23456789;
std::cout << ceilf(val * 100) / 100 << std::endl; /* 1.24 - lam tron len*/
std::cout << roundf(val * 100) / 100 << std::endl; /* 1.23 - lam tron gan nhat*/
std::cout << floorf(val * 100) / 100 << std::endl; /* 1.23 - lam tron xuong*/
return 0;
}
Editor are welcome
Bài liên quan
cái này báo lỗi là sao anh ơi
Trước mình chỉ sử dụng có floorf thôi. Có thể làm thế này để làm tròn lên: floorf( a + 0.6f).
Báo lỗi như thế nào em?
chắc tại e dùng bản Express nên nó báo lỗi
IntellSense: identifie “roundf” is undefined
ngoài dùng roundf thì còn cách nào để làm tròn gần nhất không anh
Lơ cái lỗi IntellSense đi, nó bị ngu với C++ hay sao ấy. Anh ít làm với VS nên anh không rõ. Lỗi này vẫn compile và chạy được.
@tranhuanltv lỗi IntellSense là sao vậy Huân? Sao nó cứ bị lỗi này với C++ hoài? Hay IntellSense chỉ sử dụng cho Visual C++?
Ngày trước tớ dùng VS2010 cũng không dùng được roundf, chỉ có dùng floorf. http://stackoverflow.com/questions/485525/round-for-float-in-c . làm tròn gần nhất thì dùng floorf như cách trên ấy.
Làm sao để mình làm tròn vd : 1.24 -> 1.0 và 1.26 -> 1.5 vậy a @ltd
Cháu có bài làm tròn đến số thập phân thứ nhất từ 0.5 , còn nhỏ hơn 0.5 thì làm tròn xuống 0. Giúp cháu với ạ
xem chi tiết http://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html#Rounding-Functions
A post was split to a new topic: 5e-006 có nghĩa là gì?
đấy là C++ còn làm xuống trong C thì sao p
Vậy làm tròn với phần thập phân là 00 thì sao ạ? VD: 2.00
( mà dùng setprecision thì nó chỉ làm tròn đc bình thường thôi ạ, nhưng mà 2.00 thì nó hiện là 2)
Vậy là tròn rồi bạn muốn ntn?
ý là nếu nó là số nguyên thì cho nó hiện ra thêm phần thập phân là 00 vd: kqua là 2 thì in ra là 2.00
std::cout << setiosflags(std::fixed);
anh ơi mình dùng setprecision thì có khác gì hông ạ?
setprecision
chỉ là in ra số thập phân với 1 số chữ số phần thập phân nhất định thôi, chứ không hẳn là làm tròn.