c++ - 当我从 int 切换到 double 时,数组中出现奇怪的反馈

标签 c++ arrays floating-point int

我是 C++ 的新手,正在做我的第一个数组实验。我已经成功地格式化并显示了我想要的内容,但是我这样做是使用整数——当它的目的是让所有数字都是 float 时。我将数组类型更改为 double 以及相应的函数......现在当我尝试打印一些数字(在本例中为数字 100)时,它给我奇怪的反馈。

我环顾四周,发现数组中出现奇怪数字的唯一原因是没有初始化数组。如果我错了,请纠正我,但我觉得我已经做到了(考虑到我使用 int 时的输出是我想要的减去小数位。)但是当我从 INT 切换到 DOUBLE 时 - 我得到了奇怪的反馈。

这是我的双倍程序。 (奇怪的数字)

void print(double twenty_by_twenty[][SIZE])

for (int i = 0; i < SIZE; i++)
{
    for (int j = 0; j < SIZE; j++)
    {
        cout << right << setw(5) << setprecision(2) << twenty_by_twenty[i][j];
    }
    cout << endl;
}




void initialize_array(double twenty_by_twenty[][SIZE])

for (int i = 0; i < SIZE; i++)
{
    for (int j = 0; j < SIZE; j++)
    {
        if (j > 0 && j < 19 && i == 0 || j > 0 && j < 19 && i == 19)
        {
            twenty_by_twenty[i][j] = { 100 };
        }
        else
        {
            twenty_by_twenty[i][j] = { 0 };
        }
    }
}



int main()

double twenty_by_twenty[20][20];

initialize_array(twenty_by_twenty);

print(twenty_by_twenty);

这是我的 int 程序。 (显示我想要的 - 没有小数位)

void print(int twenty_by_twenty[][SIZE])

for (int i = 0; i < SIZE; i++)
{
    for (int j = 0; j < SIZE; j++)
    {
        cout << right << setw(5) << setprecision(2) << twenty_by_twenty[i][j];
    }
    cout << endl;
}




void initialize_array(int twenty_by_twenty[][SIZE])

for (int i = 0; i < SIZE; i++)
{
    for (int j = 0; j < SIZE; j++)
    {
        if (j > 0 && j < 19 && i == 0 || j > 0 && j < 19 && i == 19)
        {
            twenty_by_twenty[i][j] = { 100 };
        }
        else
        {
            twenty_by_twenty[i][j] = { 0 };
        }
    }
}



int main()

int twenty_by_twenty[20][20];

initialize_array(twenty_by_twenty);

print(twenty_by_twenty);

最佳答案

跟进您的评论:您要求精度为 2。默认情况下,std::cout如果科学记数法中指数的值小于精度,并且大于或等于 -4,则使用科学记数法,否则固定。我怀疑你想要的是固定精度;在这种情况下,您必须这样告诉流:std::cout << fixed <<... .

关于c++ - 当我从 int 切换到 double 时,数组中出现奇怪的反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28439480/

相关文章:

C++分布式编程

c++ - mex - 在 matlab 中使用 .a 而不是带有 curl 的 .lib 文件

arrays - 如何过滤包含字符串的数组和结构体对象数组,其中有字符串参数?

floating-point - "epsilon"真的能保证浮点计算中的任何东西吗?

c - 有没有一种工具可以知道一个值是否具有作为浮点变量的精确二进制表示?

c++ - cvNamedWindow - 功能未实现,无法启动 LibHand

c++ - 有人知道将您自己的语言添加到不受管理的 visual studio 2010 的任何资源吗?

javascript - 检查 JavaScript 中数组、对象、字符串和数字等数据类型的空值

java - res/values/strings.xml 中的字符串数组

r - R中的浮点问题?