如何正确地在c++中打印double类型的cout
How to properly print a double to cout in C++
我在发布这个之前已经看了一些问题,找不到我要找的东西,所以如果它是重复的,我很抱歉。
我有这样的代码:
cout << "The balance at year " << i << " will be " << char(156) << std::setprecision(2)
<< balance << endl;
据我所知,这应该打印到控制台类似:
£2.00
£100.46
*供参考以上只是例子,我知道没有什么建议这些数字,但格式应该是这样的,对吗?
但这是我的输出:
£1e+002
£1.1e+002
它为什么这样做?
我的理解是,使用setprecision
会显示小数点后2位,仅此而已。
哦,还注意到几乎没有关于打印double的问题,说使用setprecision
实际上声明这需要包括:
#include <iomanip>
setprecision
设置精度、位数。
fixed
设置固定格式。
使用std::fixed
设置固定格式,而不是科学记数法。
cout << "The balance at year " << i << " will be " << char(156) << std::setprecision(2) << std::fixed << balance << endl;
这样做:
cout << "The balance at year " << i << " will be " << char(156) << std::setprecision(2) << std::fixed << balance << endl;
相关文章:
- 在c++中为double类型的数组创建一个unique_ptr
- C++:无法使用条件类型在模板函数中使用 'double' 类型的 lvalue 初始化 'char*' 类型的参数
- 格式“%lf”期望“ double *”类型的论点,但参数2具有“ poly term **”类型
- 错误:无法将 "double*" 类型的值分配给类型 "double" 的实体
- 使用Float或Double类型时不显示小数
- 'double' 和 'double' 类型的无效操作数
- 为什么用“std::chrono”进行时差测量时,与“double”类型相比,用“float”类型给出的有效数字更多
- 在当前的C++和Java中,double类型和float类型:if(x==0.0)是正确的
- double类型的c++变量总是将其值更改为-9,25596e+061
- 将一个short类型数组转换为double类型数组
- 最快的复制double类型的方法
- 将Vec*类型强制转换为double*类型
- c++验证String中的Double类型
- 将数据从const void *data转换为double类型
- 具有double类型的变量参数的函数的奇怪输出
- C++错误:无效的 'double' 类型的操作数和二进制"运算符"<未解析的重载函数类型"
- 在c#中使用非托管c++代码对所有double类型返回0
- 如何正确地在c++中打印double类型的cout
- 将double类型强制转换为int:它是如何工作的
- 错误:将' double* '和' double '类型的操作数转换为二进制' operator/ '无效