C++ 将 0.00 转换为 00.00

C++ Converting 0.00 into 00.00

本文关键字:转换 C++      更新时间:2023-10-16

我在将输出组织到项目的控制台中时遇到问题。所以我写了一个函数来在字符串上添加空格以正确格式化它。现在我遇到了 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(