Làm tròn số thập phân, hiện 2 chữ số thập phân sau dấu phẩy C và C++

Trong bài viết này tất cả chúng ta sẽ khám phá về cách làm tròn số, cũng như cách để format chỉ hiển thị 2 số thập phân sau dấu phẩy trong lập trình C / C + + .

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

Làm tròn đến số nguyên

Trong C hay C++ để làm tròn số thập phân ta sử dụng hàm round() trong thư viện math.h. Nếu bạn muốn phân biệt rõ rằng thuần C và C++ trong chương trình thì với C là thư viện #include >, C++ ta dùng thư viện là #include

Ta có ví dụ làm tròn số như sau:

#include 
#include 

int main()
{
	float  a = 5.654;
	int a1 = round(a);
	printf("Lam tron so %f ta duo: %d", a, a1);
	
	float  b = 5.454;
	int b1 = round(b);
	printf("\nLam tron so %f ta duo: %d", b, b1);
	return 0;
}

Kết quả

Làm tròn số thập phân, hiện 2 chữ số thập phân sau dấu phẩy C và C++

Vì là trong lập trình mà, sẽ có rất nhiều trường hợp ta không làm tròn theo quy tác toán học, mà ta chỉ mặc định sẽ làm tròn lên hoặc xuống với một mục đích cụ thể nào đó. Vậy thư viện math cũng cung cấp cho ta 2 hàm để thực hiện việc đó.

double ceil ( double ); => Hàm này sẽ chỉ luôn luôn làm tròn lên

double floor ( double ); => Ngược lại với hàm này sẽ chỉ luôn luôn làm tròn xuống.

Ta có ví dụ cụ thể

#include 
#include 

int main()
{
	float  a = 5.9999;
	int a1 = ceil(a);
	int a2 = floor(a);
	printf("Lam tron so %f voi ham ceil: %d", a, a1);
	printf("\nLam tron so %f voi ham floor: %d", a, a2);
	
	
	float  b = 9.11111;
	int b1 = ceil(b);
	int b2 = floor(b);
	printf("\n\n\n\nLam tron so %f voi ham ceil: %d", b, b1);
		printf("\nLam tron so %f voi ham floor: %d", b, b2);
	return 0;
}

Kết quả khi chạy chương trình
Làm tròn số thập phân
Để hiểu rõ hơn những hàm tốt nhất là bạn nên tự chạy thử chương trình nhé .

Làm tròn đến số thập phân thứ n

Cách làm: Ta lấy số đó nhân với 10^x rồi sử dụng các hàm làm tròn trên làm tròn thành số nguyên, sau đó ta lại chia số đó cho 10^x như vậy là ta đã làm tròn được đến số thập phân thứ n(Với x là số chữ số sau dấu phẩy muốn làm tròn).

Ví dụ: Ta sẽ làm tròn số 9.127658 tới chữ số thập phân thứ 2

#include 
#include 

int main()
{
	float  a = 9.127658;
//Ta nhân số  9.127658 với 100 sau đó ta làm tròn kết quả, rồi lấy tiếp kết quả chia cho 100 như vậy là đã làm tròn số trên tới thập phân thứ 2, tương tự nếu lafm tròn đến stp thứ 3 thì thay 100 bằng số 1000
	float a1 = (round(a * 100))/100;
	printf("Lam tron so %f den chu so thap phan thu hai: %f", a, a1);

	return 0;
}

Kết quả :
Làm tròn đến số thập phân thứ n

Tuy nhiên, trong C thì thường sẽ mặc định hiển thị 6 số sau dấu phẩy cho dù những số sau là số 0. Vậy làm sao để chỉ hiện 2 số sau dấu phẩy.

Chỉ hiện 2 số thập phân sau dấu phẩy

Đối với C

Cách làm tương đối đơn giản, bình thường để hiện số thập phân trong C chúng ta sẽ sử dụng chuỗi định dạng %f trong hàm printf. Vậy bây h ta thay đổi chuỗi định dạng thành %.xf với x là số chữ số thập phân muốn hiện sau dấu phẩy. Như vậy tất cả các số sau x chữ số sẽ bị loại bỏ khi hiển thị.

Ta làm ví dụ: Cũng với chương trình trên nhưng bây h ta sẽ chỉ hiện 2 số sau dấu phẩy

#include 
#include 

int main()
{
	float  a = 9.127658;
	float a1 = (round(a * 100))/100;
	printf("Lam tron so %f den chu so thap phan thu hai: %.2f", a, a1);

	return 0;
}

Kết quả :
Chỉ hiện 2 số thập phân sau dấu phẩy

Đối với C++

Trong C++ hàm setprecision(2) và lệnh fixed trong thư viện iomanip sẽ giúp chúng ta thực hiện việc đó.

Hàm setprecision(2) này cũng sẽ tự làm tròn số đến chữ số thập phân mà ta muốn hiển thị.

Ta có ví dụ

#include 
#include 
using namespace std;

int main()
{
	float  a = 9.127658;
	
	cout << setprecision(2) << fixed << "a = " << a << endl;
}

Và đây là hiệu quả khi chạy chương trình
Chỉ hiện 2 số thập phân sau dấu phẩy
Cảm ơn bạn đã đọc bài viết ! Chúc học tốt nhé !

[Xem tất cả bài viết chủ đề C/C++ tại đây]

0
0
Phiếu bầu chọn

Xếp hạng bài viết