summaryrefslogtreecommitdiff
path: root/libdecnumber/decContext.c
diff options
context:
space:
mode:
authorTom Musta <tommusta@gmail.com>2014-04-21 15:54:54 -0500
committerAlexander Graf <agraf@suse.de>2014-06-16 13:24:29 +0200
commit79af3572250352c5eeacdd813b57ad5ba748654c (patch)
tree6131a6ba98cbbcfda6b7a7a9569e32642b0e66fd /libdecnumber/decContext.c
parent8e706db21ecfba75da3f9f843f1fa36276085742 (diff)
downloadqemu-79af3572250352c5eeacdd813b57ad5ba748654c.tar.gz
libdecnumber: Introduce decNumberIntegralToInt64
Introduce a new conversion function to the libdecnumber library. This function converts a decNumber to a signed 64-bit integer. In order to support 64-bit integers (which may have up to 19 decimal digits), the existing "powers of 10" array is expanded from 10 to 19 entries. Signed-off-by: Tom Musta <tommusta@gmail.com> [agraf: fix 32bit host compile] Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'libdecnumber/decContext.c')
-rw-r--r--libdecnumber/decContext.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libdecnumber/decContext.c b/libdecnumber/decContext.c
index 684710626d..8b6ae21be2 100644
--- a/libdecnumber/decContext.c
+++ b/libdecnumber/decContext.c
@@ -56,8 +56,10 @@ const uByte DECSTICKYTAB[10]={1,1,2,3,4,6,6,7,8,9}; /* used if sticky */
/* ------------------------------------------------------------------ */
/* Powers of ten (powers[n]==10**n, 0<=n<=9) */
/* ------------------------------------------------------------------ */
-const uInt DECPOWERS[10]={1, 10, 100, 1000, 10000, 100000, 1000000,
- 10000000, 100000000, 1000000000};
+const uLong DECPOWERS[19] = {1, 10, 100, 1000, 10000, 100000, 1000000,
+ 10000000, 100000000, 1000000000, 10000000000ULL, 100000000000ULL,
+ 1000000000000ULL, 10000000000000ULL, 100000000000000ULL, 1000000000000000ULL,
+ 10000000000000000ULL, 100000000000000000ULL, 1000000000000000000ULL, };
/* ------------------------------------------------------------------ */
/* decContextClearStatus -- clear bits in current status */