setprecision
là một hàm của thư viện iomanip
trong C++ dùng để đặt số lượng chữ số thập phân khi in ra màn hình hoặc ghi vào file.
Các bài viết liên quan:
Ví dụ:
#include <iostream> #include <iomanip> using namespace std; int main() { double pi = 3.14159265358979323846; cout << setprecision(5) << pi << endl; cout << setprecision(10) << pi << endl; return 0; }
Kết quả sẽ là :
3.1416 3.1415926536
Hàm setprecision
chỉ áp dụng cho lần ghi tiếp theo, nếu muốn sử dụng cho nhiều lần ghi, ta có thể sử dụng hàm fixed
hoặc scientific
cùng với setprecision
.
cout << fixed << setprecision(5) << pi << endl; cout << scientific << setprecision(5) << pi << endl;
fixed
sẽ in ra giá trị với dạng thập phân cố định, trong khi scientific
sẽ in ra giá trị với dạng scientific notation.
Chú ý rằng khi sử dụng setprecision
thì nó chỉ áp dụng cho việc in ra giá trị dạng thập phân của một số, nó không ảnh hưởng tới giá trị của số đó.
Đúng, setprecision
chỉ áp dụng cho việc in ra hoặc ghi ra giá trị dạng thập phân của một số, nó không ảnh hưởng đến giá trị của số đó. Nó chỉ giúp chúng ta đặt số lượng chữ số thập phân muốn hiển thị cho giá trị đó.
Các hàm fixed
và scientific
cũng tương tự như vậy, chúng chỉ áp dụng cho việc in ra hoặc ghi ra giá trị dạng thập phân của một số, chúng không ảnh hưởng tới giá trị của số đó. Chúng chỉ giúp chúng ta chọn dạng in ra giá trị thập phân (fixed hoặc scientific notation) mà chúng ta muốn.
Cả 3 hàm này đều sử dụng cùng với hàm cout
để in ra giá trị, và có thể sử dụng cùng với hàm ofstream
để ghi ra file.
Ngoài ra có thể sử dụng printf
hoặc fprintf
để in ra giá trị với số chữ số thập phân cần thiết.
printf("%.5f", pi);
Trong đó %.5f
là định dạng chuẩn cho việc in ra giá trị thập phân với 5 chữ số thập phân.
Một số ví dụ setprecision trong c++
Ví dụ 1: Sử dụng hàm setprecision
để in ra giá trị Pi với 5 chữ số thập phân:
double pi = 3.14159265358979323846; cout << setprecision(5) << pi << endl;
Ví dụ 2: Sử dụng hàm fixed
và setprecision
để in ra giá trị Pi với 10 chữ số thập phân:
double pi = 3.14159265358979323846; cout << fixed << setprecision(10) << pi << endl;
Ví dụ 3: Sử dụng hàm scientific
và setprecision
để in ra giá trị Pi với 3 chữ số thập phân:
double pi = 3.14159265358979323846; cout << scientific << setprecision(3) << pi << endl;
Ví dụ 4: Sử dụng hàm printf
để in ra giá trị Pi với 5 chữ số thập phân:
double pi = 3.14159265358979323846; printf("%.5f", pi);
Ví dụ 5: Sử dụng hàm setprecision
để in ra giá trị của một biến kiểu float với 3 chữ số thập phân:
float value = 123.456; cout << setprecision(3) << value << endl;
Ví dụ 6: Sử dụng hàm setprecision
để in ra giá trị của một biến kiểu double với 7 chữ số thập phân:
double value = 123.4567890; cout << setprecision(7) << value << endl;
Ví dụ 7: Sử dụng hàm setprecision
để in ra giá trị của một hằng số kiểu long double với 15 chữ số thập phân:
long double value = 3.14159265358979323846; cout << setprecision(15) << value << endl;
Ví dụ 8: Sử dụng hàm setprecision
để in ra giá trị của một hằng số kiểu double với 2 chữ số thập phân và dùng hàm fixed
double value = 3.14159265358979323846; cout << fixed << setprecision(2) << value << endl;
Ví dụ 9: Sử dụng hàm setprecision
để in ra giá trị của một biến kiểu int với 1 chữ số thập phân:
int value = 123; cout << setprecision(1) << value << endl;
Ví dụ 10: Sử dụng hàm setprecision
để in ra giá trị của một biến kiểu long với 4 chữ số thập phân:
long value = 123456; cout << setprecision(4) << value << endl;