Ich arbeite mit einem Projekt, aber ich finde keine Möglichkeit, Float-Nummern in einem Array zu speichern. Ich habe eine .txt-Datei (testfile.txt) mit Float-Zahlen, wie dieseSo speichern Sie Gleitkommazahlen im Array C++
1.0 2.0
3.0 4.0
5.0 6.0
7.0 8.0
9.0 10.0
Und ich mag es in ein Array speichern. Aber wenn ich das mache, werden alle meine Zahlen in Ganzzahlen umgewandelt. Mein Programm sieht wie folgt aus:
#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;
}
}
Und der Ausgang ist wie dieser
1
2
3
4
5
6
7
8
9
10
Kann jemand mir bitte erklären, was ich falsch mache? Ich habe viel versucht, danke im Voraus!
Können Sie erklären, wo das Problem liegt? – Amit
"* alle meine Zahlen werden in' float' * "umgewandelt - Ich gehe hier davon aus, dass Sie wirklich meinen, dass alle Zahlen in" int "konvertiert werden, da sie in der Ausgabe als Ganzzahlen gedruckt werden. Wenn meine Annahme hier korrekt ist, dann setzen Sie die Genauigkeit von "std :: ostream" nicht so, dass sie mit Dezimalzahlen gedruckt werden - die Zahlen selbst werden in der Tat als "doppelt" gespeichert. – ArchbishopOfBanterbury
Sie können 'std :: fixed' und [' std :: setprecision() '] (http://en.cppreference.com/w/cpp/io/manip/setprecision) verwenden, um die Ausgabe von Dezimalziffern zu steuern. –