如何在数组中存储浮点数

How to store float numbers in array C++

本文关键字:存储 浮点数 数组      更新时间:2023-10-16

我正在处理一个项目,但我找不到在数组中存储浮点数的方法。我有一个带有浮点数的。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
谁能告诉我我做错了什么?我已经尝试了很多,提前感谢!

你的问题不在于你如何存储这些数字。

数字存储得很好。

你的问题是你如何看待这些数字。

你打印数字的方式是错误的,所以你看到的数字是错误的,所以你认为数字有问题。

默认情况下,cout << my_double_variable将呈现不带小数的双精度。

一个简单的google搜索" c++ cout double",得到的第一个结果如下stackoverflow Q&A:

如何使用cout打印具有完全精度的双精度值?

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

小打印: 如果您正在使用调试器,您将自己看到这一点,而不需要编写任何代码来打印东西,不会被错误的打印输出误导,也没有所有的雁追逐。所以,我的建议是:开始使用调试器。