【发布时间】:2014-08-20 11:38:17
【问题描述】:
我需要:
- 设置精度,以便浮点数四舍五入到百分之一(0.111 打印为 0.11)
- 剪切尾随零(1.0 打印为 1)
- 从不打印指数(1000.1 打印为 1000.1)
printf( "%.2f\n", input ); // handles 1 and 3 but not 2printf( "%.2g\n", input ); // handles 1 and 2 but not 3cout << setprecision( 2 ) << input << endl; // handles 1 and 2 but not 3
是否有 printf 或 cout 选项可以让我处理所有这些问题?
【问题讨论】:
-
我不明白
printf( "%.2f\n",如何在第 3 点失败。当我使用它(Mac OS X 上的 Clang)打印 1E267 或 1E-267 时,它不打印指数。 -
@PascalCuoq 谢谢我更改了订单,忘记更改附加代码。我现在已经修好了。
-
@Jongware 我几乎做了和你一样的事情,然后我认为纯 C 解决方案可能是 OP 可以接受的,即使问题确实包含一些 C++。现在我已经用纯 C 编写了一个解决方案,而您的编辑让我的解决方案看起来离题了。
-
@Pascal:……好吧,同意我太仓促了。 OP 在这方面可能只是更清楚一点。 (我在要求 C++ 时看到海报抱怨,并提交了一个纯 C 解决方案,IMO 确实应该至少一样好。)
标签: c++ c floating-point printf cout