|  | Home | Libraries | People | FAQ | More | 
          It may appear that floating-point numbers are displayed by the Unit
          Test Framework with an excessive number of decimal digits. However
          the number of digits shown is chosen to avoid apparently nonsensical displays
          like [1.00000
          != 1.00000] when comparing exactly unity against a
          value which is increased by just one least significant binary digit using
          the default precision for float of just 6 decimal digits, given by std::numeric_limits<float>::digits10. The function used for the number
          of decimal digits displayed is that proposed for a future C++ Standard,
          A
          Proposal to add a max significant decimal digits value, to be called
          std::numeric_limits::max_digits10();.
          For 32-bit floats, 9 decimal digits are needed to ensure a single bit change
          produces a different decimal digit string.
        
          So a much more helpful display using 9 decimal digits is thus: [1.00000000 != 1.00000012] showing that the two values are in fact
          different.
        
          For IEEE754 32-bit float values - 9 decimal
          digits are shown. For 64-bit IEEE754 double
          - 17 decimal digits. For IEEE754 extended
          long double using 80-bit - 21 decimal digits. For IEEE754
          quadruple long double 128-bit, and SPARC extended long double 128-bit -
          36 decimal digits. For floating-point types, a convenient formula to calculate
          max_digits10 is: 2 + std::numeric_limits<FPT>::digits
          * 3010/10000;
        
| ![[Note]](../../../../../../../doc/src/images/note.png) | Note | 
|---|---|
| 
            Note that a user defined floating point type UDFPT must define  |