If 문에서 2G(2 * 1024 * 1024 * 1024)가 넘는지 체크하는데
<!--CodeS-->
var
dLimit : double;
begin
If (dLimit > 2048 * 1024 * 1024 ) then
begin
...
end;
end;
<!--CodeE-->
이렇게 하면 "Overflow in conversion or arithmetic operation" 에러가 나는데
<!--CodeS-->
var
dLimit : double;
begin
If (dLimit > 2147483648) then
begin
...
end;
end;
<!--CodeE-->
이렇게 하면 에러가 안나는 이유가 무엇인가요?
답변 주실 분들에게 미리 감사합니다.(__)
Limit : double;
begin
Limit := 2;
Limit := Limit * 1024;
Limit := Limit * 1024;
Limit := Limit * 1024;
Limit := Power(1024, 3) * 2;
위와같이 했을땐 에러가 없더군요..ㅡㅡ; 어찌된 영문인지..^^;
쉽게 생각하고 간단히 답변했다가...죽 나열해서 직접 해보니..ㅜㅡ;; 안되더군요..ㅋ
uses 절에 ...,Math ,.... 유닛추가해 주세요~
const
MULTIPLE = 1024;
KB = 1;
MB = 2;
GB = 3;
var
dLimit: double;
Limit : double;
begin
Limit := Power(MULTIPLE, GB) * 2;
// 단순비교인경우는 ....
//if SameValue(dLimit, Limit) then
case CompareValue(dLimit, limit) of
-1 : ShowMessage('LessThanValue');
0 : ShowMessage('EqualsValue');
1 : ShowMessage('GreaterThanValue');
end;
end;
이런식으로 사용하시면 ....
그럼..