我正在创建一个计算器程序,但我不知道如何设置计算答案的小数位精度,以便显示实际的小数位数。 例子: - 如果答案是6,它将显示6,而不是6.0000000
- 如果答案是8.23,它将显示8.23,而不是8.23000000
等
我如何设置精度?
答案 0 :(得分:2)
基本上,您可以设置:
std::cout.precision(6); // 6 digits
或您需要的任何价值。或者:
std::cout << std::setprecision(5) << my_double_value << std::endl;
答案 1 :(得分:2)
在C ++中,使用方法精度来设置所需占位符的数量,例如:
double f = 3.14159;
std::cout.unsetf ( std::ios::floatfield ); // floatfield not set
std::cout.precision(5); //will output 5 digits after point
std::cout << f << '\n';
std::cout.precision(10); //will output 10 digits after point, like 3.1415900000
std::cout << f << '\n';
std::cout.setf( std::ios::fixed, std:: ios::floatfield ); // floatfield set to fixed
std::cout << f << '\n';
要删除任何尾随零,您可以使用
std::cout.precision(0);
答案 2 :(得分:1)
iostream
提供了setprecision
功能:
double f =3.14159;
std::cout << std::setprecision(5) << f << '\n';
std::cout << std::setprecision(9) << f << '\n';
std::cout << std::fixed;
std::cout << std::setprecision(5) << f << '\n';
std::cout << std::setprecision(9) << f << '\n'
输出将是:
3.1416
3.14159
3.14159
3.141590000
答案 3 :(得分:1)
这将有效:
printf("%g",value);
答案 4 :(得分:1)
1.0/10,0
,它应该是0.1,但实际上是一个非常接近0.1的数字;因此,您为这些总和显示的小数位数不是双精度本身的质量,而是您想要显示的小数位数。
在其他答案中讨论了如何截断所需的数字。