C++ 标准保证我们只能安全地往返十进制值最多
对于 double
值 std::numeric_limits<double>::digits10
.
看完这篇post ,我想知道对于整数值,这个阈值是否扩展到 std::numeric_limits<double>::digits10
+1
最佳答案
std::numeric_limits::digits10 为 15,因为只有 15 位数或更少的值才能保证从十进制到 double 并返回。一些 16 位数的值会往返,但不是全部。在整数的情况下,只有那些 <= 2^53 = 9007199254740992 才能保证往返(因为它们被准确表示)。例如,9007199254740993 返回为 9007199254740992。
关于c++ - 使用 IEEE 754 浮点 double 据类型安全往返整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21182411/