我该怎么做
std::cout << 123456789.12
Run Code Online (Sandbox Code Playgroud)
打印这个:
123456789.12
Run Code Online (Sandbox Code Playgroud)
它始终打印这个:
1.23457e+008
Run Code Online (Sandbox Code Playgroud)
我知道我必须玩旗帜,但我无法弄清楚正确的组合.如果我设置固定标志,则打印
123456789.120000
Run Code Online (Sandbox Code Playgroud)
P0W*_*P0W 11
怎么......?
单程 :-
#include <iostream>
#include <iomanip>
int main() {
double f =123456789.12;
std::cout << std::fixed << std::setprecision(2) << f << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
看到这里
请寻找适当的参考资料
您可以使用:
#include <iostream>
#include <limits>
using namespace std;
int main() {
double c = 123456789.12;
cout.precision(numeric_limits<double>::digits10 + 1);
cout << c << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
基本上,该limits包具有所有内置类型的特征。浮点数 ( float/double/long double) 的特征之一是digits10属性。这定义了以 10 为基数的浮点数的精度。
现场观看: http: //ideone.com/Ity9m7
要继续阅读,请查看另一个类似的问题:How do I print a double value with full precision using cout?
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |