prf.c: properly format INF/NAN/zero with prefix
The space or plus prefix must appear when requested even with INF and NAN. And no zero-padding in that case. Also, 0.0 and -0.0 are distinct values. It is necessary to display the minus sign with a negative zero. Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
This commit is contained in:
parent
90ec5360be
commit
53169743d2
2 changed files with 19 additions and 16 deletions
|
@ -121,6 +121,10 @@ void test_sprintf_double(void)
|
|||
zassert_true((strcmp(buffer, "-INF") == 0),
|
||||
"sprintf(-INF) - incorrect output '%s'\n", buffer);
|
||||
|
||||
sprintf(buffer, "%010f", var.d);
|
||||
zassert_true((strcmp(buffer, " -inf") == 0),
|
||||
"sprintf( +inf) - incorrect output '%s'\n", buffer);
|
||||
|
||||
var.u1 = 0x00000000;
|
||||
var.u2 = 0x7ff80000; /* Bit pattern for NaN (double) */
|
||||
sprintf(buffer, "%e", var.d);
|
||||
|
@ -147,6 +151,10 @@ void test_sprintf_double(void)
|
|||
zassert_true((strcmp(buffer, "NAN") == 0),
|
||||
"sprintf(NAN) - incorrect output '%s'\n", buffer);
|
||||
|
||||
sprintf(buffer, "%+8.5e", var.d);
|
||||
zassert_true((strcmp(buffer, " +nan") == 0),
|
||||
"sprintf( +nan) - incorrect output '%s'\n", buffer);
|
||||
|
||||
var.u1 = 0x00000000;
|
||||
var.u2 = 0xfff80000; /* Bit pattern for -NaN (double) */
|
||||
sprintf(buffer, "%e", var.d);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue