в C ++, могу ли я написать и прочитать обратно поплавок (или двойной) в текстовом формате без потери точности?
Рассмотрим следующее:
float f = ...;
{
std::ofstream fout("file.txt");
// Set some flags on fout
fout << f;
}
float f_read;
{
std::ifstream fin("file.txt");
fin >> f;
}
if (f != f_read) {
std::cout << "precision lost" << std::endl;
}
Я понимаю, почему точность потеряна иногда. Однако, если я распечатаю значение достаточно цифр, я должен иметь возможность прочитать то же самое значение.
Есть ли данный набор флагов, которые гарантированно никогда не теряют точность? Будет ли это поведение портативным по платформам?