Количество (десятичных) цифр, которое вам нужно, чтобы уникально обозначало любое float
по определению std::numeric_limits<float>::maxdigits10
. Формат float
не может различать 0.0
и 0.0000
, поэтому эта константа является максимальным значением, которое вам когда-либо понадобится.
Теперь обратите внимание, что я сказал однозначно . Это не точно . Это означает, что если вы напишите два разных двоичных значения, вы получите два разных десятичных представления. Это также означает, что если вы прочитаете такое десятичное представление, его нельзя спутать ни с каким другим значением, и поэтому вы получите то же двоичное значение, которое у вас было раньше. Обычно этих двух гарантий достаточно.
[править]
std::numeric_limits<float>::digits10
представляет обратную концепцию: наибольшее количество десятичных цифр, такое, что десятичное число -> двоичное число -> десятичное число гарантировано точно.