// modify precision
#include <iostream>
using namespace std;
int main () {
double f = 3.14159;
cout.precision(5);
cout << f << endl;
cout.precision(10);
cout << f << endl;
return 0;
}
Записываю числа из одного dat файла в другой и почему-то они округляются
вот код:
ifstream iF(f.c_str(),ios::in);
ofstream oF((Application->ExeName+"OneColNat.dat").c_str(),ios::out);
double val;
int N1=0;
int i=0;
while(iF>>val){
if(i==colnum-1){
oF<<val<<endl;
N1++;
}
i++;
if(i>colcount-1)
i=0;
oF.close();
iF.close();
ifstream iN((Application->ExeName+"OneColNat.dat").c_str(),ios::in);
x=new double[N1];
int y=0;
while(iN>>val){
x[y]=val;
y++;
}
iN.close();
Я число считываю из файла в переменную val, а затем когда записываю его в другой файл, то оно округляется.
формат исходного фала такой же? по числу в строке. Что отделяет дробную часть? запятая или точка?
Код:
На выходе:
Код:
3.1416
3.14159
3.14159
http://www.cplusplus.com/ref/iostream/ios_base/precision.html
Цитата: Svyatozar
Используй функцию precision(streamsize prec);
На выходе:
Источник:
http://www.cplusplus.com/ref/iostream/ios_base/precision.html
Код:
// modify precision
#include <iostream>
using namespace std;
int main () {
double f = 3.14159;
cout.precision(5);
cout << f << endl;
cout.precision(10);
cout << f << endl;
return 0;
}
#include <iostream>
using namespace std;
int main () {
double f = 3.14159;
cout.precision(5);
cout << f << endl;
cout.precision(10);
cout << f << endl;
return 0;
}
На выходе:
Код:
3.1416
3.14159
3.14159
http://www.cplusplus.com/ref/iostream/ios_base/precision.html
Спасибо за помощь
У меня несколько чисел я считаю число колонок в файле а потом вырезаю одну и переношу в другой файл, а точность чисел в них 16 а после перезаписи получаю 8, я думаю это от системы зависит, а мне-то не надо менять точность.
У меня несколько чисел я считаю число колонок в файле они отделены пробелом или запятой, а потом вырезаю одну и переношу в другой файл, а точность чисел в них 16 а после перезаписи получаю 8, я думаю это от системы зависит, а мне-то не надо менять точность.Заранее точность чисел в этих файлах неизвестна, может быть 8 или 16.