=====De la bonne utilisation des locales pour une utilisation cohérente des nombres flottants===== [[https://stdcxx.apache.org/doc/stdlibug/24-3.html|Differences between the C Locale and the C++ Locales]] {{ :localisation:c:differences_between_the_c_locale_and_the_c_locales_2019-10-21_20_05_31_.html |Archive le 21/10/2019}} Par défaut, la locale est celle américaine. Ainsi, le séparateur décimal est le point (''.''). Il est souhaitable d'utiliser celui de l'utilisateur. En C, il n'existe qu'une seule locale configurable par ''#include ''. Celle-ci est définie par la fonction ''setlocale''. Ainsi pour forcer l'utilisation de l'environnement locale, il convient de l'appeler de la façon suivante : ''setlocale (LC_ALL, %%""%%);'' Cependant en C++, il existe plusieurs locales configurables par ''#include '' (sans ''.h''). ''std::setlocale'' est utilisée pour définir les fonctions identiques à celles du C (''vsnprintf'' par exemple) ou encore ''std::to_string (double)''. Mais la locale de ''std::cout'', ''std::cerr'' et ''std::cint'' reste celle par défaut. Ainsi, il est nécessaire de définir également la locale de ces sorties par : std::cout.imbue (std::locale ("")); std::cin.imbue (std::locale ("")); std::cerr.imbue (std::locale (""));