Computer >> Máy Tính >  >> Lập trình >> C ++

Độ chính xác của số dấu phẩy động trong C ++ (floor (), ceil (), trunc (), round () và setpre precision ())

Độ chính xác của số dấu phẩy động là độ chính xác tối đa mà một số dấu phẩy động có thể giữ các giá trị sau số thập phân.

Ví dụ:10/6 =1,6666666… chúng có các số thập phân lặp lại có thể chiếm không gian bộ nhớ vô hạn để được lưu trữ.

Vì vậy, để tránh tràn bộ nhớ trong những trường hợp như vậy, trình biên dịch đặt giới hạn chính xác cho số. Đối với các giá trị float trong C ++, độ chính xác này được đặt thành 6-7 chữ số, sau đó nếu số thập phân lặp lại, nó sẽ loại bỏ giá trị.

Vì vậy, để tránh bất kỳ tổn thất lớn nào khi việc loại bỏ này diễn ra, có các phương pháp và thư viện hỗ trợ độ chính xác là các giá trị float. Ở đây, chúng ta sẽ thảo luận về chúng,

tầng ()

Hàm floor () là hàm làm tròn số để làm tròn số đến các giá trị số nguyên gần nhất nhỏ hơn số.

Nó luôn trả về một giá trị số nguyên nhỏ hơn một phần so với phần nguyên của số thực.

Thư viện:math.h

Ví dụ

#include<iostream>
#include<math.h>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.2342, number3 = -3.31132, number4 = -0.432;
   cout<<"Values are : \n";
   cout<<"Number 1 : "<<floor(number1)<<endl;
   cout<<"Number 2 : "<<floor(number2)<<endl;
   cout<<"Number 3 : "<<floor(number3)<<endl;
   cout<<"Number 4 : "<<floor(number4)<<endl;
   return 0;
}

Đầu ra

Values are :
Number 1 : 0
Number 2 : 234
Number 3 : -4
Number 4 : -1

ceil ()

Hàm ceil () là hàm làm tròn số để làm tròn số đến giá trị số nguyên gần nhất lớn hơn số.

Nó luôn trả về một giá trị số nguyên lớn hơn một giá trị số nguyên của số thực.

Thư viện:math.h

Ví dụ

#include<iostream>
#include<math.h>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.2342, number3 = -3.31132, number4 = -0.432;
   cout<<"Values are : \n";
   cout<<"Number 1 : "<<ceil(number1)<<endl;
   cout<<"Number 2 : "<<ceil(number2)<<endl;
   cout<<"Number 3 : "<<ceil(number3)<<endl;
   cout<<"Number 4 : "<<ceil(number4)<<endl;
   return 0;
}

Đầu ra

Values are :
Number 1 : 1
Number 2 : 235
Number 3 : -3
Number 4 : -0

round ()

Hàm round () là hàm làm tròn số để làm tròn số đến các giá trị nguyên gần nhất có thể lớn hơn hoặc nhỏ hơn số.

Nó luôn trả về một giá trị số nguyên có thể nhiều hơn / nhỏ hơn một phần nguyên của số thực.

Thư viện:math.h

Ví dụ

#include<iostream>
#include<math.h>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.5612, number3 = -3.31132, number4 = -0.9132;
   cout<<"Values are : \n";
   cout<<"Number 1 : "<<ceil(number1)<<endl;
   cout<<"Number 2 : "<<ceil(number2)<<endl;
   cout<<"Number 3 : "<<ceil(number3)<<endl;
   cout<<"Number 4 : "<<ceil(number4)<<endl;
   return 0;
}

Đầu ra

Values are :
Number 1 : 1
Number 2 : 235
Number 3 : -3
Number 4 : -0

setpre precision ()

Hàm setpre precision () trả về giá trị của flaot chính xác đến n chữ số thập phân. N là tham số được truyền cho hàm setprecission.

Đối với hoạt động, nó sử dụng fixed.

Thư viện: iomanip

Ví dụ

#include<iostream>
#include<iomanip>
using namespace std;
int main() {
   float number1 = 0.435 , number2 = 234.5612, number3 = -3.31132, number4 = -0.9132;
   cout<<"Nubmer 1 correct upto 0 decimals "<<fixed<<setprecision(0)<<number1<<endl;
   cout<<"Nubmer 2 correct upto 1 decimals "<<fixed<<setprecision(1)<<number2<<endl;
   cout<<"Nubmer 3 correct upto 4 decimals "<<fixed<<setprecision(4)<<number3<<endl;
   cout<<"Nubmer 4 correct upto 3 decimals "<<fixed<<setprecision(3)<<number4<<endl;
}

Đầu ra

Nubmer 1 correct upto 0 decimals 0
Nubmer 2 correct upto 1 decimals 234.6
Nubmer 3 correct upto 4 decimals -3.3113
Nubmer 4 correct upto 3 decimals -0.913