如何用c++流输出小数点后的3位数字
How to output with 3 digits after the decimal point with C++ stream?
给定一个float类型的变量,如何在小数点后输出3位数字,使用c++中的iostream ?
使用setf
和precision
#include <iostream>
using namespace std;
int main () {
double f = 3.14159;
cout.setf(ios::fixed,ios::floatfield);
cout.precision(3);
cout << f << endl;
return 0;
}
打印3.142
这个显示了"13.142"
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
您可以通过使用iomanip
头获得固定数量的小数位数(和许多其他东西)。例如:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << 'n';
return 0;
}
将输出:
3.14
请注意,fixed
和setprecision
都永久地改变了流,所以,如果你想本地化效果,你可以事先保存信息,然后恢复它:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << 'n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << 'n';
std::cout << pi << 'n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << 'n';
return 0;
}
输出为:
3.14159
3.14
3.14
3.14159
如果您想打印十进制后精度为3位的数字,只需在打印数字cout << std::setprecision(3) << desired_number
之前添加以下内容。不要忘记在代码中添加#include <iomanip>
。
一般来说,精度是显示的最大位数。操纵符fixed将设置输出流,以fixed格式显示值。在固定中,精度是小数点后的位数。setprecision允许设置用于显示浮点值的精度,它接受整型参数。
cout << fixed;
cout << setprecision(3) << f << endl;
您可以使用cout.unsetf(ios::fixed)
相关文章:
- 输出错误,问题是找到总和5000位数字cpp
- 顺时针迭代旋转 3 位数字
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 使用 cin 时接受小数点后的 2 位数字
- 您可以使用 setfill() 来设置 fill 2 位数字吗?
- 斐波那契数列部分和的最后一位数字
- 我需要找到 N 位数字的总和
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 如何在C ++中替换整数的前两位数字?
- 将最多 50 位数字的 2 个数字相乘
- C++ 中 11 位数字的数字的乘积
- 使用 AVX2 指令左移 128 位数字
- 如何对两个 4 位数字进行乘法,将它们视为 C++ 中的多项式
- 将大数字(10-12 位数字)存储在无序映射中<字符串,整数>
- 随机生成的输出中有多少位数字 1、2、3
- 列出所有 N 位数字,并带有 [字符串] 数字
- 如何生成九位数字,其中每个数字都与其他数字不同
- 以8位数字形式输入日期并以英文形式显示
- 如何正确取消设置64位数字中的位?
- 如何找到由公式计算的非常大的数字的最后一位数字?