The follwing program gives different output in different languages: ------ fp.c -------- #include <stdio.h> #include <locale.h> int main() { setlocale (LC_ALL, ""); printf("%f\n", 42.0); } ----------------- $ gcc -std=c99 ~/tmp/fp.c $ LANG=C ./a.out 42.000000 $ LANG=de_DE ./a.out 42,000000 The C99-draft says at 7.19.6.1/#8: ------------------- f,F A double argument representing a (finite) floating- point number is converted to decimal notation in the style [-]ddd.ddd, ------------------- so the latter output (with a comma instead of a period) is wrong. This behavior breaks a lot of programs (e.g. doxygen generates TeX with measure-units like 1,6666cm)
Sorry, behavior if glibc is correct (I have missed 7.1.1/#); the other programs are wrong so I have to write a lot of other bugreports.