mah*_*ood 21 c++ floating-point-precision
我看到很多关于浮点数的精度数的问题,但具体来说我想知道为什么这个代码
#include <iostream>
#include <stdlib.h>
int main()
{
int a = 5;
int b = 10;
std::cout.precision(4);
std::cout << (float)a/(float)b << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
显示0.5?我希望看到0.5000.是因为原始整数数据类型?
Nem*_*ric 24
#include <iostream>
#include <stdlib.h>
#include <iomanip>
int main()
{
int a = 5;
int b = 10;
std::cout << std::fixed;
std::cout << std::setprecision(4);
std::cout << (float)a/(float)b << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您需要将std::fixed操纵器传递给以cout显示尾随零.
std::cout.precision(4);告诉要使用的最大位数而不是最小值。这意味着,例如,如果您使用
precision 4 on 1.23456 you get 1.235
precision 5 on 1.23456 you get 1.2346
Run Code Online (Sandbox Code Playgroud)
如果您想始终获取n数字,则必须使用std::fixed.
| 归档时间: |
|
| 查看次数: |
18475 次 |
| 最近记录: |