我想将int64与这样的变量进行比较:
const GB=1073741824;
if DiskFile.Size< 1*GB then
Run Code Online (Sandbox Code Playgroud)
它适用1但不适用3:
if DiskFile.Size< 3*GB then
Run Code Online (Sandbox Code Playgroud)
这篇文章(Strange Delphi整数乘法行为)解释了原因.我同意这个解释.2*GB的结果不能适合'整数'.我不明白为什么编译器选择整数而不是int64?如下:
if DiskFile.Size< 3073741824 then <--------- almost 3GB
Run Code Online (Sandbox Code Playgroud)
这样可行.
有没有办法用3*GB样式编写最后一行代码(使用常量)但是没有为1GB,2GB,3GB,4GB等定义新的常量?
delphi ×1