是否有一种标准方法可以将 C++ 中的 float (或 double )格式化为十进制,并具有足够的精度将其解析回相同的位?
也就是说,我想要1.F
成为"1.0"
和2.002f
成为"2.002"
.
对于十进制不精确的情况,可以接受其他格式(科学甚至十六进制 float )。这种情况存在吗?
我能找到的只是对 std::fixed
的引用和std::setprecision
such as this link 。这些的精度是固定的。
谢谢。
最佳答案
我必须做很多事情,即你想要做的事情。我的解决方案是使用这样的东西:
char buf[32];
sprintf(buf, "%.15f", v);
TrimTrailingZeros(buf);
关于C++ 格式化浮点自动精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31257599/