1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
/* Test of extra rounding.
$Id: dtostrf-round.c,v 1.1 2007/02/06 12:36:58 dmix Exp $
*/
#include <stdlib.h>
#include <string.h>
#include "progmem.h"
#include "dtostrf.h"
PROGMEM static const struct dtostrf_s t[] = {
{ { .fl = .46 }, 0, 3, "0.460" },
{ { .fl = .46 }, 0, 2, "0.46" },
{ { .fl = .46 }, 0, 1, "0.5" },
{ { .fl = .46 }, 0, 0, "0" }, /* just that very case */
{ { .fl = .46 }, 1, 0, "0" },
{ { .fl = .46 }, 2, 0, " 0" },
{ { .fl = .51 }, 0, 3, "0.510" },
{ { .fl = .51 }, 0, 2, "0.51" },
{ { .fl = .51 }, 0, 1, "0.5" },
{ { .fl = .51 }, 0, 0, "1" },
{ { .fl = .51 }, 1, 0, "1" },
{ { .fl = .51 }, 2, 0, " 1" },
{ { .fl = .58 }, 0, 3, "0.580" },
{ { .fl = .58 }, 0, 2, "0.58" },
{ { .fl = .58 }, 0, 1, "0.6" },
{ { .fl = .58 }, 0, 0, "1" },
{ { .fl = .58 }, 1, 0, "1" },
{ { .fl = .58 }, 2, 0, " 1" },
{ { .fl = 0.4999 }, 0, 4, "0.4999"},
{ { .fl = 0.4999 }, 0, 3, "0.500" },
{ { .fl = 0.4999 }, 0, 2, "0.50" },
{ { .fl = 0.4999 }, 0, 1, "0.5" },
{ { .fl = 0.4999 }, 0, 0, "0" },
{ { .fl = 0.049 }, 0, 2, "0.05" },
{ { .fl = 0.049 }, 0, 1, "0.0" },
{ { .fl = 0.049 }, 0, 0, "0" },
{ { .fl = 0.0000000000049 }, 0, 12, "0.000000000005"},
{ { .fl = 0.0000000000049 }, 0, 11, "0.00000000000" },
{ { .fl = 0.0000000000049 }, 0, 10, "0.0000000000" },
{ { .fl = 0.0000000000051 }, 0, 12, "0.000000000005"},
{ { .fl = 0.0000000000051 }, 0, 11, "0.00000000001" },
{ { .fl = 0.0000000000051 }, 0, 10, "0.0000000000" },
};
int main ()
{
int i;
for (i= 0; (size_t)i != sizeof(t)/sizeof(t[0]); i++)
run_dtostrf (t+i, i+1);
return 0;
}
|