为什么以下代码对于 64 位构建失败(但适用于 32 位构建)?var TruncTmp: Extended;begin TruncTmp := 9223372036854775296; TruncTmp := Trunc(TruncTmp); // this fails on 64-bit Assert(TruncTmp = 9223372036854775296);end; 这是一个错误还是我错过了什么?笔记: 我使用的是 Delphi 10.2 数字 9223372036854775296 工作正常 最佳答案 Win64 下没有“扩展”(80 位 FP)类型——它只是“双倍”(64 位 FP)的别名。所以你只有双倍的 53 位分辨率。所以我的猜测是你的情况符合预期。关于delphi - 对于 64 位构建的高 Int64,Trunc() 失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48301595/
10-11 12:54