【发布时间】:2012-03-14 04:19:43
【问题描述】:
根据以下网站: http://en.cppreference.com/w/cpp/language/types
“double - 双精度浮点类型。通常为 IEEE-754 64 位浮点类型”。
它说“通常”。 C++ double 可以使用哪些其他可能的格式/标准?什么编译器使用 IEEE 格式的替代方案?还是建筑?
【问题讨论】:
-
我认为所有的例外都会很老。例如,我使用了具有 60 位浮点的 Control Data Cyber。
-
根据repository of all knowledge:一些 IBM 和 Cray 大型机,以及 80 年代初之前的任何东西,使用非 IEEE 格式。
-
任何符合 C++ 标准的都可以。
-
你也可以使用编译器开关 -ffast-math 禁用 ieee754(至少对于 gcc/clang,mvc 有类似的选项)。
-
@krynr:这将禁用 IEEE754 评估规则,但您仍将拥有 IEEE754 格式
doubles。