📜  C++中的std :: fixed,std :: scientific,std :: hexfloat,std :: defaultfloat

📅  最后修改于: 2021-05-30 06:56:08             🧑  作者: Mango

通过使用操纵器,特殊变量或放置在输出流上的对象,可以在标准C++库中进行格式化。浮点操纵器有两种类型,即固定浮点和科学浮点。这些都在头文件中定义。

    精度的使用:在默认的浮点表示法中,precision字段指定要在小数点之前和之后显示的最大有效位数,而在固定和科学表示法中,precision字段均指定要精确显示多少位数。即使小数点后跟十进制零,也会显示在小数点后。
  1. std :: fixed –固定浮点数表示法:它以固定点数表示法写入浮点值。该值用精度字段(precision)指定的小数部分中的位数完全相同,而没有指数部分。
  2. std :: scientific –科学浮点表示法:它以科学点表示法写入浮点值。该值总是用小数点前的一位数字表示,其后是小数点,并且与精度字段(精度)一样多。最后,该符号始终包括由字母“ e ”组成的指数部分,后跟一个可选符号和三个指数数字。
  3. std :: hexfloat –十六进制浮点数表示法:以no的精度转换为十六进制格式后,它输出所需的数字。被初始化(如上例所述)。
  4. std :: defaultfloat – defaultfloat浮点数表示法:输出精度为no后与默认值相同的所需数字。被初始化(如上例所述)。它主要用于区分其他使用的格式,以使代码易于理解。
    // C++ code to demonstrate the 
    // working of 
    // std::fixed
    // std::scientific
    // std::hexfloat
    // std::defaultfloat
      
    #include  
    using namespace std;
    int main()
    {
        // Initializing floating point variable
        double a = 4.223234232;
        double b = 2323.0;
      
        // Specifying precision
        cout.precision(4);
          
        // Printing normal values
        cout << "Normal values of floating point numbers\na = ";
        cout << a << "\nb = " << b << '\n' ;
          
        // Printing values using fixed ( till 4 )
        cout << "Values using fixed \n" << std::fixed;
        cout << a << "\n" << b << '\n' ; 
          
        // Printing values using scientific ( till 4 )
        // after 4, exponent is used
        cout << "Values using scientific are : " << std::scientific << endl;
        cout << a << '\n' << b << '\n' ; 
          
        // Printing values using hexfloat ( till 4 )
        cout << "Values using hexfloat are : " << std::hexfloat << endl;
        cout << a << '\n' << b << '\n' ; 
          
        // Printing values using defaultfloat ( till 4 )
        // same as normal
        cout << "Values using defaultfloat are : " << std::defaultfloat << endl;
        cout << a << '\n' << b << '\n' ; 
          
          
        return 0;
    }
    

    输出:

    Normal values of floating point numbers
    a = 4.223
    b = 2323
    Values using fixed 
    4.2232
    2323.0000
    Values using scientific are : 
    4.2232e+00
    2.3230e+03
    Values using hexfloat are : 
    0x1.0e49783b72695p+2
    0x1.226p+11
    Values using defaultfloat are : 
    4.223
    2323
    
    要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”