Comparison of double, long double, float and float128?

前端 未结 1 1074
温柔的废话
温柔的废话 2020-12-04 01:22

Why is there no difference between double, long double or float?

For instance, the computation of pi in C++ is,

#include &l         


        
相关标签:
1条回答
  • 2020-12-04 01:48

    My platform does not have a __float128, but here's an example showing output by precision with float, double, and long double:

    #include <cmath> 
    #include <iomanip>
    #include <iostream>
    #include <limits>
    
    int main()
    {
      float PI0 = std::acos(-1.0F);
      double PI1 = std::acos(-1.0);
      long double PI2 = std::acos(-1.0L);
    
      constexpr auto PI0_max_digits10 = std::numeric_limits<decltype(PI0)>::max_digits10;
      constexpr auto PI1_max_digits10 = std::numeric_limits<decltype(PI1)>::max_digits10;
      constexpr auto PI2_max_digits10 = std::numeric_limits<decltype(PI2)>::max_digits10;
    
      std::cout << "Float=" << std::setprecision(PI0_max_digits10) << PI0 << std::endl;
      std::cout << "Double=" << std::setprecision(PI1_max_digits10) << PI1 << std::endl;
      std::cout << "LongDouble=" << std::setprecision(PI2_max_digits10) << PI2 << std::endl;
    }
    
    0 讨论(0)
提交回复
热议问题