【发布时间】:2015-02-09 17:30:25
【问题描述】:
我认为它们在 64 位架构师上是相同的。
例如我正在编写一个函数模板,我应该提供浮点数和双精度数的规范,还是应该只提供一个规范采用双精度数并让其他数字自动转换为双精度数?假设考虑的唯一数字类型是 float、double、int、long、unsigned int、unsigned long。
【问题讨论】:
-
这取决于架构,因此您需要指定 - x86、ARM 或其他。
-
即使在特定架构上,它也可能取决于上下文。但即使使用
double,您也不能假设转换后的整数类型会给您相同的比较结果。 -
规则:使用 double 除非你有充分的理由,你可以向其他人解释,使用 float。如果你问哪个更高效,使用double。
-
你真的需要为所有类型指定吗?您不能只指定浮点类型和整数类型吗?见en.cppreference.com/w/cpp/types
标签: c++ floating-point