最佳答案
在C++中,利用cout停止输出时,常常会碰到须要把持输出精度的须要。比方,在表现浮点数时,可能须要指定小数点后保存的位数。C++供给了多少种方法来把持cout的输出精度。
1. 默许输出精度
C++中,cout默许输出浮点数的精度为6位有效数字。这意味着假如输出一个浮点数,cout会主动保存6位有效数字,假如缺乏6位,则主动补充前导零。
2. 利用setprecision()设置精度
setprecision(n)
是一个成员函数,它属于流东西 cout。该函数用于设置cout的输出精度,即设置浮点数输出时保存的小数位数。参数 n 指定要保存的小数位数。
#include <iostream>
#include <iomanip>
int main() {
double num = 123.456789;
std::cout << num << std::endl; // 默许输出,保存6位有效数字
std::cout << std::setprecision(2) << num << std::endl; // 设置输出精度为2位
return 0;
}
输出成果将是:
123.456789
123.46
3. 利用fixed把持小数点后的位数
fixed
是一个标记,它也属于流东西 cout。当与 setprecision()
一同利用时,fixed
可能确保输出的小数位数是牢固的,而不是有效数字的位数。
#include <iostream>
#include <iomanip>
int main() {
double num = 123.456789;
std::cout << std::fixed << std::setprecision(3) << num << std::endl; // 设置输出精度为3位,牢固小数点后的位数
return 0;
}
输出成果将是:
123.457
4. 利用unsetf()撤消fixed形式
假如须要撤消 fixed
形式,可能利用 unsetf(ios::fixed)
函数。
#include <iostream>
#include <iomanip>
int main() {
double num = 123.456789;
std::cout << std::fixed << std::setprecision(3) << num << std::endl; // 设置输出精度为3位,牢固小数点后的位数
std::cout << std::unsetf(ios::fixed) << num << std::endl; // 撤消fixed形式
return 0;
}
输出成果将是:
123.457
123.456789
5. 留神事项
setprecision()
设置的是输出精度,而不是有效数字的位数。- 在利用
fixed
形式时,setprecision()
设置的是小数点后的位数,而不是总位数。 - 假如不设置
fixed
形式,setprecision()
设置的是从第一个非零数字开端的总位数。
经由过程以上方法,可能机动地把持C++中cout的输出精度,以满意差其余表现须要。