Может ли atof () выдавать разные результаты в зависимости от компилятора / библиотеки другого компьютера (x86-64) - PullRequest
2 голосов
/ 24 февраля 2012

Мне интересно, может ли atof () выдавать другие результаты с плавающей запятой в зависимости от того, какой компилятор используется и какие стандартные библиотеки находятся на машине.Я знаю, что преобразование не всегда является точным из-за того, как работают плавающие объекты IEEE, однако мне особенно интересно, будут ли эти выведенные плавающие объекты IEEE идентичны друг другу при использовании различных версий GCC на одной и той же архитектуре.

Пример:

double x = atof ("78.93241");

Будет ли x одинаковым на одной и той же архитектуре между различными версиями GCC и различными дистрибутивами linux (такими как GCC 4.1)-> 4.6, RHEL 6.0 и Debian).Если нет, есть ли что-нибудь, что документирует это поведение?

1 Ответ

2 голосов
/ 24 февраля 2012

Я не вижу причин, по которым в реальном мире atof() не даст разных результатов с разными компиляторами и / или на другом оборудовании.Даже при одинаковом оборудовании и форматах с плавающей запятой вы можете получить разные результаты, потому что компиляторы и библиотеки могут иметь и имеют ошибки.См., Например, эту ошибку .

...