我在 C 中有一个字符串指针,它有 bigint 数据。
例如9223372036854775807
,即2^63
我想将其转换为 double 但您知道 double 有 15/16 位可用于存储小数部分,其余位将被丢弃。因此上述非常大的数字将转换为9.22337203685476E+18
ie 922337203685476000
。
这使得比较原始值和转换值不匹配。这通常发生在 Linux 平台上。问题是为什么这不会在 Windows 上发生?
它是依赖于编译器还是我不知道的东西。?