【问题标题】:Remove trailling zeros from a number in C++从 C++ 中的数字中删除尾随零
【发布时间】:2020-08-09 10:12:24
【问题描述】:

我得到的值示例

 12.230030
 4.000000
 400.402100
 132.000000
 53.120203
 100.0010
 45.320030

我希望这个浮动值像这样打印

12.230030
4
400.4021
132
53.120203
100.001
45.32003

【问题讨论】:

  • 这能回答你的问题吗? Avoid trailing zeroes in printf()
  • 这不是。我有一个快速的答案。我添加了我的答案,看看吧
  • 您可以将您的答案添加到现有问题中。你不应该问新问题。
  • 要求 C#,这是 C++
  • 误会了。我刚刚编辑了它

标签: c++ floating-point truncate


【解决方案1】:

只需使用printf 函数。

float val=12.02300;
printf("%.8g",val);

会给出正确的输出。在这种情况下,它将输出为12.023
其他输出示例 对于value=400.00;,它将输出400
对于value=32.122300,它将输出32.1223

【讨论】:

  • 这是一个 C 还是 C++ 问题?我们不在 C++ 中使用printf。 C++ 使用iostreams。以下将执行:#include #include int main() { std::vector values{ 12.230030, 4.000000, 400.402100, 132.000000, 53.120203, 100.0010, 45.320030 }; for (const double d : values) std::cout
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 2012-07-02
  • 1970-01-01
  • 2015-06-16
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多