diff options
author | Björn-Egil Dahlberg <[email protected]> | 2013-01-23 17:03:41 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2013-01-23 17:03:41 +0100 |
commit | d5bc1c71f756114d3110328d57e4f0545e144577 (patch) | |
tree | 11c95b7af28a060cffda5733d3043ffea707e798 /erts/emulator/sys/win32/sys_float.c | |
parent | 4c97cddddbe7c193953dbb58c342069330e3324c (diff) | |
parent | ab27e8699ef2a2bafe574158200993f184de3dc2 (diff) | |
download | otp-d5bc1c71f756114d3110328d57e4f0545e144577.tar.gz otp-d5bc1c71f756114d3110328d57e4f0545e144577.tar.bz2 otp-d5bc1c71f756114d3110328d57e4f0545e144577.zip |
Merge branch 'sal/float_to_list_2/OTP-10752'
* sal/float_to_list_2/OTP-10752:
Text representation of a float formatted using given options.
Diffstat (limited to 'erts/emulator/sys/win32/sys_float.c')
-rw-r--r-- | erts/emulator/sys/win32/sys_float.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/erts/emulator/sys/win32/sys_float.c b/erts/emulator/sys/win32/sys_float.c index 09dad89140..960edaa7a5 100644 --- a/erts/emulator/sys/win32/sys_float.c +++ b/erts/emulator/sys/win32/sys_float.c @@ -114,15 +114,16 @@ sys_chars_to_double(char *buf, double *fp) /* ** Convert a double to ascii format 0.dddde[+|-]ddd -** return number of characters converted +** return number of characters converted or -1 if error. */ int -sys_double_to_chars(double fp, char *buffer, size_t buffer_size) +sys_double_to_chars_ext(double fp, char *buffer, size_t buffer_size, size_t decimals) { char *s = buffer; - - (void) erts_snprintf(buffer, buffer_size, "%.20e", fp); + + if (erts_snprintf(buffer, buffer_size, "%.*e", decimals, fp) >= buffer_size) + return -1; /* Search upto decimal point */ if (*s == '+' || *s == '-') s++; while (isdigit(*s)) s++; |