fix DECIMAL_DIG definitions
authorRich Felker <dalias@aerifal.cx>
Wed, 21 Mar 2012 16:42:48 +0000 (12:42 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 21 Mar 2012 16:42:48 +0000 (12:42 -0400)
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.

arch/arm/bits/float.h
arch/i386/bits/float.h
arch/x86_64/bits/float.h
include/float.h

index 75fdc9bc45637bd252e55ad81bdefa934cad5f50..dce9e2d9802583e2f7a404d3f0fa5bc9728eb77b 100644 (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
index 044b516b70fc55d7b8e7f82ec5f6d146cc2d009c..d439d40b827b5399926684588c6b2d3b65ef0b42 100644 (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
index a58424e0fb535e34805c579124a29248aab293f4..422a2df8b7a397e8c5f0273439c3f2f11b5f5b61 100644 (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
index ef91f37d8aebf6a40a474dd92f1365dc03493793..ea25f270a799fb8663943f8494cd598b96cdee57 100644 (file)
@@ -29,6 +29,4 @@
 
 #include <bits/float.h>
 
-#define DECIMAL_DIG LDBL_DIG
-
 #endif