Mar*_*tin 5 c++ boost std c++14
有使用任何优雅溶液stdC ++或Boost库,以输出double到std::cout的方式,在满足以下条件:
0的(小数部分)不会打印出来例如:
double d = 200000779998;
std::cout << `[something]` << d;
Run Code Online (Sandbox Code Playgroud)
应该准确打印出来200000779998。[something]应该可能是noexcept一些现有操纵器的组合。
这不是问题的解决方案:
std::cout << std::setprecision(6) << std::fixed << d;
Run Code Online (Sandbox Code Playgroud)
因为它打印出200000779998.000000带有尾随0的
MSa*_*ers -1
很难证明是否定的,但我认为不会。
这些要求与任何正常使用不一致。空间效率决定了二进制格式。6 位数字(十进制)精度建议采用一种供人类读者使用的格式,因为人类读者无法翻阅大量数据。人类可以毫无问题地处理一致的 6 位数格式。
所以,你基本上是针对一种没有明显受众的格式,这就是为什么如果有支持的话我会感到惊讶。