Commit ed3a32b1 authored by Damien George's avatar Damien George
Browse files

Merge pull request #157 from dhylands/printf-float

Added a hacky implementation for %g
parents 328708eb b5f45827
......@@ -206,6 +206,21 @@ int pfenv_printf(const pfenv_t *pfenv, const char *fmt, va_list args) {
case 'P': // ?
chrs += pfenv_print_int(pfenv, va_arg(args, int), 0, 16, 'A', flags, width);
break;
case 'g':
{
// This is a very hacky approach to printing floats. Micropython
// uses %g when using print, and I just wanted to see somthing
// usable. I expect that this will be replaced with something
// more appropriate.
char dot = '.';
double d = va_arg(args, double);
int left = (int)d;
int right = (int)((d - (double)(int)d) * 1000000.0);
chrs += pfenv_print_int(pfenv, left, 1, 10, 'a', flags, width);
chrs += pfenv_print_strn(pfenv, &dot, 1, flags, width);
chrs += pfenv_print_int(pfenv, right, 0, 10, 'a', PF_FLAG_ZERO_PAD, 6);
break;
}
default:
pfenv->print_strn(pfenv->data, fmt, 1);
chrs += 1;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment