C++ 将 0.00 转换为 00.00
C++ Converting 0.00 into 00.00
我在将输出组织到项目的控制台中时遇到问题。所以我写了一个函数来在字符串上添加空格以正确格式化它。现在我遇到了 0 不是小数点前的正确长度的问题,它破坏了格式。如何将 0.00 更改为 00.00?这是我目前的函数:
void organize(string n[], double tstData[][COLUMN])
{
int j = 0;
string spaces[12] = {" "," "," "," "," "," "," "," "," "," "," "," "};
string holder = "";
for (int i = 0; i < 40; i++) {
if (n[i].size() < 17) {
j = 17 - n[i].size();
j = j - 1;
holder = n[i];
holder = holder + spaces[j];
n[i] = holder;
}
for (j = 0; j < 4; j++) {
if (tstData[i][j] == 0.00) {
tstData[i][j] = 00;
}
}
}
}
大多数编程语言不会存储您在设置变量时提供的确切数字。相反,它们将您提供的数字转换为该数字的二进制表示形式。当您打印出数字时,它会转换为字符串。将数字转换为字符串的方法不知道如何设置值,也不了解设置数字时提供的位数。任何两个数字在数字上相同的数字都将以相同的方式打印。
如果要确保在小数点前至少获得两位数字,请尝试:
if(tstData[i][j]) < 10) cout << "0";
cout << tstData[i][j] << endl;
我强烈建议使用,#include <iomanip>
,以及setfill()
,setw()
和setprecision()
。
setfill('0')
表示您希望未使用的部分填充 0
setw(4)
指示格式的宽度 (0000(
最后,使用 setprecision(2)
设置格式的精度 (00.00(
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 了解 GLM- openGL 中的相机转换
- 将无符号char*转换为std::istream*C++