[Wiki] Cách làm tròn số thực trong C++

:slight_smile: 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).

3 Likes

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 :frowning:
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.

1 Like

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 ạ :sleepy: :sleepy:

#include <math.h>

Function: long int lround (double x)
Function: long int lroundf (float x)
Function: long int lroundl (long double x)

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

1 Like

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 :smiley: 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.

1 Like

cho tớ hỏi làm sao để alm2 tròn 20.01 thành 21 v bạn

Làm tròn lên (ceil).

3 Likes

tôi đã thử ceil(20.01) mà nó vẫn ra 20 có phải thiếu j k v bạn ơi

À, quên mất nó xét số thập phân đầu tiên.
20.01 -> xét số 0 => 20.
Thế thì bạn tự tạo hàm vậy.

int ceilx(float n){
    return (int)(n-(int)n>0?n+1:n);
}

int main(){
    cout << ceilx(20.01) << endl;
    cout << ceilx(20.0000001) << endl;
}
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?