如何在数组C ++中存储浮点数

时间:2016-08-27 22:41:35

标签: c++ arrays numbers double text-files

我正在使用一个项目,但我找不到将数字存储在数组中的方法。我有一个带浮点数的.txt文件(testfile.txt),比如这个

1.0 2.0
3.0 4.0
5.0 6.0
7.0 8.0
9.0 10.0

我想将它存储到一个数组中。但是当我这样做时,我的所有数字都转换为整数。我的程序看起来像这样:

#include <fstream>
#include <iostream>

using namespace std;

int main()
{
    double number[10];

    ifstream infile;
    infile.open("testfile.txt");
    for(int a=0; a<10; a=a+1)
    {
      infile >>  number[a]; // Reading from the file
      cout << number[a] << endl;
    }
}

输出就像这样

1
2
3
4
5
6
7
8
9
10

有人可以向我解释我做错了什么吗?我已经尝试了很多,提前谢谢!

1 个答案:

答案 0 :(得分:2)

您的问题不在于如何存储数字。

数字存储得很好。

您的问题是如何查看数字。

您打印数字的方式是错误的,因此您看到的数字是错误的,因此您认为数字有问题。

默认情况下,cout << my_double_variable会渲染您的双倍而不带小数。

一个简单的谷歌搜索&#34; C ++ cout double&#34;首先得到以下stackoverflow Q&amp; A:

How do I print a double value with full precision using cout?

根据该解决方案,解决方案是使用cout.precision(N);,其中N是您所需的精度。

小字体: 如果您使用的是调试器,您可能已经亲眼看到了这一点,而无需编写任何代码来打印内容被错误的打印输出误导,没有所有的野鹅追逐。所以,我的建议是: 开始使用调试器。