在 C++ 中, 我可以以文本格式写入和读取浮点数(float 或 double)而不会丢失精度吗?
考虑以下内容:
考虑以下内容:
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;
}
我理解有时候会丢失精度。然而,如果我打印足够多的位数,我应该能够读回完全相同的值。
是否有一组标志可以保证不会丢失精度?这种行为是否跨平台可移植?