Разница между двоичным и плавающим преобразованием в C # и C / C ++

Если вы import os, вы можете использовать os.getcwd для получения текущего рабочего каталога, и вы можете использовать os.chdir для изменения своего каталога

3
задан Ido H Levi 18 March 2019 в 11:59
поделиться

2 ответа

Есть много способов однозначно представить одно и то же значение с плавающей запятой в десятичном виде. Например, вы можете добавить произвольно много нулей после точного вывода (обратите внимание, что, поскольку каждая степень двух имеет десятичное представление конечной длины, то же самое происходит с каждым числом с плавающей запятой).

Критерий «когда я могу прекратить печатать лишние цифры» обычно выбирается как «вы можете прекратить печатать лишние цифры, когда вы получите точно такое же значение обратно, если вы проанализировали десятичный вывод в число с плавающей точкой» снова". Вкратце: ожидается, что на выходе с плавающей запятой "совершаются круговые поездки".

Если вы проанализируете десятичные представления 34.844479 и 34.84448, вы обнаружите, что они оба преобразуются обратно в значение с плавающей запятой 0x420b60bf или 01000010000010110110000010111111. Итак, обе эти строки представляют одно и то же число с плавающей запятой. (Источник: Попробуйте сами на https://www.h-schmidt.net/FloatConverter/IEEE754.html )

Ваш вопрос сводится к «Почему разные библиотеки времени выполнения печатают различные значения для одного и того же числа с плавающей точкой? », на что ответ« библиотека, как правило, должна выяснить, когда прекратить печатать цифры, они не обязаны останавливаться на минимуме ». До тех пор, пока вы сможете вернуть тот же самый float при повторном его анализе, библиотека сделала свое дело.

Если вы хотите увидеть точно такие же десятичные строки , вы можете добиться этого с помощью соответствующих параметров форматирования.

0
ответ дан Max Langhof 18 March 2019 в 11:59
поделиться

Поскольку значение одно и то же, мы можем догадаться, что функция печати, обрабатывающая это значение, может быть незначительной разницей в этом: -)

0
ответ дан fratardi 18 March 2019 в 11:59
поделиться