From f594fb6ab0519b6c114c95f036cb3d9d1995b982 Mon Sep 17 00:00:00 2001 From: Lars Timm Date: Wed, 17 Mar 2021 08:26:44 +0100 Subject: [PATCH] Fixed printout of floats in minimal printf. --- platform/source/minimal-printf/mbed_printf_implementation.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/source/minimal-printf/mbed_printf_implementation.c b/platform/source/minimal-printf/mbed_printf_implementation.c index 5d2a8288deb..df403653512 100644 --- a/platform/source/minimal-printf/mbed_printf_implementation.c +++ b/platform/source/minimal-printf/mbed_printf_implementation.c @@ -302,6 +302,8 @@ static void mbed_minimal_formatted_string_double(char *buffer, size_t length, in precision *= 10; } + value = (value - integer) * precision; + /* convert to positive number */ if (value < 0.0) { value *= -1.0; @@ -313,7 +315,8 @@ static void mbed_minimal_formatted_string_double(char *buffer, size_t length, in value -= decimal; if (!((value > -0.5) && (value < 0.5))) { - decimal++; + if (decimal + 1 < precision) + decimal++; } /* write decimal part */