当前位置:首页 C++内部资料 > 正文

【内部资料】cout.precision(n) 和cout << fixed <<setprecision(n) << x; 的区别和联系

作者:野牛程序员:2023-09-30 18:42:24 C++内部资料阅读 2399

cout.precision(n)cout << fixed << setprecision(n) << x; 都用于控制 C++ 中输出浮点数的精度。它们的区别和联系如下:

  1. cout.precision(n):

    • cout.precision(n) 是一种基本的设置,它只影响接下来输出的浮点数的精度。

    • 这个函数会设置输出流 cout 的默认浮点数精度为 n,但不会影响后续的输出。

    • 如果你只想设置一次输出精度,然后后续输出都使用相同的精度,可以使用这个方法。

  2. cout << fixed << setprecision(n) << x;:

    • 这是一个更复杂的方法,允许你精确控制每个输出的精度。

    • cout << fixed 会将浮点数输出格式固定为小数点后显示所有有效数字,而不是使用默认的科学计数法。

    • setprecision(n) 设置当前输出的精度为 n

    • 这种方法适用于需要不同精度的多个输出,每个输出都可以单独设置。

联系:

  • cout << fixed << setprecision(n) << x; 可以用来设置单个输出的精度,并且可以根据需要灵活地更改精度。

  • 如果你只关心整个程序中的一个全局精度设置,可以使用 cout.precision(n) 来设置,这将在接下来的输出中起作用。

#include <iostream>
#include <iomanip>

int main() {
    double x = 3.14159265359;

    std::cout << "Using cout.precision(n):" << std::endl;
    std::cout.precision(4);  // 设置全局精度为4
    std::cout << x << std::endl;  // 输出 3.142
    std::cout << 2.71878 << std::endl;  // 输出 2.719

    std::cout << "Using cout << fixed << setprecision(n):" << std::endl;
    std::cout << std::fixed << std::setprecision(2) << x << std::endl;  // 输出 3.14
    std::cout << std::fixed << std::setprecision(5) << x << std::endl;  // 输出 3.14159

    return 0;
}

上述示例中,第一部分使用 cout.precision(n) 设置全局精度,第二部分使用 cout << fixed << setprecision(n) 分别设置单个输出的精度。

\"image.png\"/


setprecision(4) 和 cout.precision(4) 效果输出效果一样,都是设置精度(小数的整数部分也计算在内)。
cout<<fixed << setprecision(4) 和 cout.flags(ios::fixed);cout.precision(4);效果一样,保留四舍五入保留小数点后4位
#include <iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
    cout.flags(ios::fixed) ;
    cout.precision(3)      ;   

    cout<<1.7657 <<endl;   //输出1.766
   

    return 0;


}
#include <iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{

    cout.precision(3)      ;   

    cout<<1.7657 <<endl;  //输出1.77
  

    return 0;


}


#include <iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
    cout<<setprecision(3)<<1.7657 <<endl;//输出1.77
    return 0;
}
#include <iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{

    cout<<fixed<<setprecision(3)<<1.7657 <<endl; //输出1.766
    return 0;


}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击