C++ 格式化浮点自动精度

标签 c++ floating-point

是否有一种标准方法可以将 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/

相关文章:

c - 从简单的浮点计算中得到错误的输出

c++ - 为什么运算符删除重载不会在调用删除时调用无限递归调用

c++ - 如何创建像标准库头一样的头,以便可以在不链接头中函数的所有目标文件的情况下编译程序?

python - 按给定精度舍入 float

.net - 为什么在 vb.net 中如果我为单个变量分配一个数字它不等于相同的值

C++ 处理过高的精度

c++ - 正则表达式 - 匹配后面没有特定模式的字符

c++ - 为什么仅当我在 C++ 中使用 rand() 函数时循环才运行 1 或 2 次

c++ - 需要空终止的 string_view

python - 如何在 `DataFrame.to_json` 期间获得 float 的精确表示?