ave*_*123 6 c++ double decimal
我使用以下内容将我的值舍入为2小数点:
x = floor(num*100+0.5)/100;
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常; 除了"16.60"之类的值,即"16.6".
我想输出这个值,如"16.60".
我输出值的方式如下:
cout setw(12) << round(payment);
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
cout setw(12) << setprecision(2) << round(payment);
Run Code Online (Sandbox Code Playgroud)
但这给了我一些答案
1.2e+02
Run Code Online (Sandbox Code Playgroud)
如何正确输出值?
bil*_*llz 19
这是因为std::setprecision如果不将浮点格式更改为使用小数点后的固定位数,则不设置小数点后的数字,而是设置有效数字.要更改格式,必须将std :: fixed放入输出流:
double a = 16.6;
std::cout << std::fixed << std::setprecision(2) << a << std::endl;
Run Code Online (Sandbox Code Playgroud)
ger*_*tan 10
你可以使用printf/sprintf或其他类似的功能.以下代码将浮点值格式化为小数点后的两位数.有关更多格式信息,请参阅printf手册
float f = 1.234567
printf("%.2f\n", f);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51105 次 |
| 最近记录: |