【发布时间】:2015-05-20 08:54:30
【问题描述】:
我必须不时处理我的应用程序中的大量数字。所以我决定使用 QWord 来确保该范围将(希望)涵盖所有场景。 长话短说,FreePascal 编译器似乎在整数范围内进行所有数学运算。这会导致一些奇怪的行为,即
if QWordVariable > 8600000000 then ...
即使 QWordVariable 大于 8600000000 也不会进入 then 部分。只有显式类型的对话才能让 if 子句正常工作:
if QWordVariable > QWord(8600000000) then ...
有人知道为什么编译器不会自动将静态数字转换为 QWord 进行比较吗?
非常感谢您的提前和亲切的问候,
LT
【问题讨论】:
标签: int range overflow freepascal int64