fix DECIMAL_DIG definitions

DECIMAL_DIG is not the same as LDBL_DIG

type_DIG is the maximimum number of decimal digits that can survive a
round trip from decimal to type and back to decimal.

DECIMAL_DIG is the minimum number of decimal digits required in order
for any floating point type to survive the round trip to decimal and
back, and it is generally larger than LDBL_DIG. since the exact
formula is non-trivial, and defining it larger than necessary may be
legal but wasteful, just define the right value in bits/float.h.
This commit is contained in:
Rich Felker 2012-03-21 12:42:48 -04:00
parent 25501c1079
commit 47db8903f6
4 changed files with 6 additions and 2 deletions

View File

@ -12,3 +12,5 @@
#define LDBL_DIG 15
#define LDBL_MIN_10_EXP (-307)
#define LDBL_MAX_10_EXP 308
#define DECIMAL_DIG 17

View File

@ -12,3 +12,5 @@
#define LDBL_DIG 18
#define LDBL_MIN_10_EXP (-4931)
#define LDBL_MAX_10_EXP 4932
#define DECIMAL_DIG 21

View File

@ -12,3 +12,5 @@
#define LDBL_DIG 18
#define LDBL_MIN_10_EXP (-4931)
#define LDBL_MAX_10_EXP 4932
#define DECIMAL_DIG 21

View File

@ -29,6 +29,4 @@
#include <bits/float.h>
#define DECIMAL_DIG LDBL_DIG
#endif