在C++中可以使用cout.precison(val)来控制浮点数的输出精度,但并不是意味着仅使用cout.precison(val)可以控制输出结果的小数点位数,在此记录一下,就当做学习笔记。
下面先做一下简单的验证:
#include <iostream>
using namespace std;
int main()
{
double x = 1.23456789;
cout.precision(1);
cout << "The first : " << x << endl;//输出设置位数为1的x 的值
cout.precision(2);
cout << "The second : " << x << endl;//输出设置位数为2的x 的值
cout.precision(3);
cout << "The third : " << x << endl;//输出设置位数为3的x 的值
return 0;
}
输出结果为:
The first :1
The second :1.2
The third : 1.23
再将x的值改为0.002,结果如下:
The first :0.002
The second :0.002
The third : 0.002
从结果可以看出,
cout.precision()是用来控制输出的有效数字的个数,而不能控制输出的小数位数
。
而要想控制输出小数点后的数字的位数,则可以这样对程序进行改进:
#include <iostream>
using namespace std;
int main()
{
double x = 0.0023;
cout.precision(1);
cout << "1 : " <<fixed<< x << endl;//输出设置位数为1的x 的值
cout.precision(2);
cout << "2 : " <<fixed<< x << endl;//输出设置位数为2的x 的值
cout.precision(3);
cout << "3 : " <<fixed<< x << endl;//输出设置位数为3的x 的值
system("pause");
return 0;
}
输出结果为:
The first :0.0
The second :0.00
The third : 0.002
因此,使用cout.precision()能够控制输出的有效数字的个数,而不能控制小数点后的输出位数。
要想控制小数点后数字的输出位数,则可以使用下面的格式:
cout.precision(val); //val代表小数点后输出的小数位数
cout << "The number is : " <<fixed<< x << endl; //`在输出前加上**fixed**则可实现
版权声明:本文为qq_44894692原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。