Don't display trailing '.' in _dcvt
In the two helper functions that _dcvt calls for 'f' and 'e' mode, if there are no digits to display after the decimal point, don't add one. Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
11f99384d2
commit
76dcfd0c4d
|
@ -93,6 +93,7 @@ print_f (struct _reent *ptr,
|
|||
{
|
||||
if (p == start)
|
||||
*buf++ = '0';
|
||||
if (decpt < 0 && ndigit > 0)
|
||||
*buf++ = '.';
|
||||
while (decpt < 0 && ndigit > 0)
|
||||
{
|
||||
|
@ -148,11 +149,15 @@ print_e (struct _reent *ptr,
|
|||
}
|
||||
|
||||
*buf++ = *p++;
|
||||
if (dot || ndigit != 0)
|
||||
*buf++ = '.';
|
||||
if (ndigit > 0)
|
||||
dot = 1;
|
||||
|
||||
while (*p && ndigit > 0)
|
||||
{
|
||||
if (dot) {
|
||||
*buf++ = '.';
|
||||
dot = 0;
|
||||
}
|
||||
*buf++ = *p++;
|
||||
ndigit--;
|
||||
}
|
||||
|
@ -168,6 +173,10 @@ print_e (struct _reent *ptr,
|
|||
{
|
||||
while (ndigit > 0)
|
||||
{
|
||||
if (dot) {
|
||||
*buf++ = '.';
|
||||
dot = 0;
|
||||
}
|
||||
*buf++ = '0';
|
||||
ndigit--;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue