|  | Home | Libraries | People | FAQ | More | 
      The typedef floatmax_t
      designates a floating-point type capable of representing any value of any floating-point
      type in a given platform most precisely.
    
      The greatest-width typedef is
      provided for all platforms, but, of course, the size may vary.
    
      To provide floating-point constants most precisely
      representable for a floatmax_t
      type, use the macro BOOST_FLOATMAX_C.
    
      For example, replace a constant 123.4567890123456789012345678901234567890
      with
    
BOOST_FLOATMAX_C(123.4567890123456789012345678901234567890)
      If, for example, floatmax_t
      is float64_t then the result
      will be equivalent to a long double suffixed with L, but if floatmax_t is float128_t
      then the result will be equivalent to a quad
      type suffixed with Q (assuming, of
      course, that float128_t (__float128 or Quad)
      is supported).
    
      If we display with max_digits10,
      the maximum possibly significant decimal digits:
    
#ifdef BOOST_FLOAT32_C std::cout.precision(boost::max_digits10<boost::float32_t>()); // Show all significant decimal digits, std::cout.setf(std::ios::showpoint); // including all significant trailing zeros. std::cout << "BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) = " << BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) << std::endl; // BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) = 123.456787 #endif
then on a 128-bit platform (GCC 4.8.1 or higher with quadmath):
BOOST_FLOAT32_C(123.4567890123456789012345678901234567890) = 123.456787 BOOST_FLOAT64_C(123.4567890123456789012345678901234567890) = 123.45678901234568 BOOST_FLOAT80_C(123.4567890123456789012345678901234567890) = 123.456789012345678903 BOOST_FLOAT128_C(123.4567890123456789012345678901234567890) = 123.456789012345678901234567890123453