Мне нужно представлять числа одинарной точности в виде текста таким образом, чтобы не потерять какую-либо информацию (поэтому я могу получить одно и то же число, возможно, без учета NaN и т. Д.), Но без слишком большого количества ложных цифр - так, с одинарной точностью 0,1«0.1», а не «0.100000001490116».
Я не пытаюсь сохранить байты, эти лишние цифры просто сбивают с толку.
Есть ли простой способ сделать это?Я вижу, что по крайней мере 8 значащих десятичных разрядов понадобятся для представления 23 + 1 битов (12345678.0 и 12345679.0 различаются с одинарной точностью), и этого будет достаточно с двоичным показателем (12345b-11
вид записи), но это гарантированоДостаточно ли десятичной записи экспоненты (1.2345e+6
) или записи, которая использует 0-отступ (0.0000123456
- обычно более удобочитаемы, и эти нули меня не беспокоят)?
Любые форматы printf
,или точные инструкции очень ценятся.