Thu 28 Mar 2013 07:54:26 AM UTC, original submission:
I have next situation:
Code:
float value = 0.0f;
char buf[32];
static const int WIDTH = 3;
static const int PREC = 0;
dtostrf(value, WIDTH, PREC, buf);
I get {' ',' ','0'} // space, space, zero
but I expected {' ','0','.'} // space, zero, point
because of manual:
Quote:
The minimum field width of the output string (including the '.' and the possible sign for negative values) is given in width, and prec determines the number of digits after the decimal sign. width is signed value, negative for left adjustment.
I think manual sholud be corrected:
Quote:
The minimum field width of the output string (including the possible '.' and the possible sign for negative values) is given in width, and prec determines the number of digits after the decimal sign. width is signed value, negative for left adjustment.
Jörg Wunsch comment from avrfreaks:
That's debatable. It would seem reasonable to correct the function
itself, so it yields " 0." rather than " 0", to indicate this is
a floating-point number. Then, it would also be debatable how to
handle numbers where the absolute value is less than one: print
" .1", or better " 0.1"?
|