If I’m not mistaken, awk parses a number depending on the OS language (eg,echo "1,2" | awk '{printf("%f\n",$1)}' would be interpreted as 1 in an english system and as 1.2 in a system where a comma separates the integer from the decimal part).
I don’t know if the C printf does this too, so I added the C tag.
I would like to modify the previous command so that it returns the same value (1.2) regardless of the system being used.
Welcome to the ugliness of locale. To fix your problem, first set the locale to the C one.
To turn off other locale-dependent tomfoolery, you can