是否有一种标准方法可以在C ++中以十进制格式化浮点数(或双精度数),其精度足以将其解析回相同的位?
也就是说,我希望1.F
"1.0"
和2.002f
为"2.002"
。
对于十进制不精确的情况,另一种格式是可接受的(科学甚至是十六进制浮点数)。这种情况是否存在?
我所能找到的只是std::fixed
和std::setprecision
的引用
such as this link。这些精度是固定的。
感谢。
答案 0 :(得分:2)
我必须做很多事情,即你要做的事情。我的解决方案是使用这样的东西:
char buf[32];
sprintf(buf, "%.15f", v);
TrimTrailingZeros(buf);