我不太明白 showpoint 的用途,我知道它强制显示小数点,但是在不使用 showpoint 的情况下使用“cout << setprecision << fixed”就足够了。
你能给我举个必须具备 showpoint 的例子吗?
最佳答案
当涵盖大范围的值时,可能需要格式化逻辑在定点和科学记数法的使用之间切换,同时仍然需要小数点。如果您查看此示例的输出,您会发现它不仅仅是定点表示法:
#include <iostream>
int main() {
for (double value(1e15), divisor(1); divisor < 1e20; divisor *= 10) {
std::cout << std::noshowpoint << (value / divisor) << '\t'
<< std::showpoint << (value / divisor)
<< '\n';
}
}
这会产生输出
1e+15 1.00000e+15
1e+14 1.00000e+14
1e+13 1.00000e+13
1e+12 1.00000e+12
1e+11 1.00000e+11
1e+10 1.00000e+10
1e+09 1.00000e+09
1e+08 1.00000e+08
1e+07 1.00000e+07
1e+06 1.00000e+06
100000 100000.
10000 10000.0
1000 1000.00
100 100.000
10 10.0000
1 1.00000
0.1 0.100000
0.01 0.0100000
0.001 0.00100000
0.0001 0.000100000
关于c++ - 为什么可以使用 setprecision fixed 时使用 showpoint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552005/