ik heb dit stuk code:
nu, als ik
doe, krijg ik mooi een getal met GB achter (19.5 gb) (neemt else)
maar als ik dit doe:
dan neemt hij de derde, en krijg ik iets met een MB (25007.4 mb) achter.
het ligt niet aan de FormatFloat, want als ik debug kan ik het mooi zien springen naar de 3e bij 26... en naar else bij 20...
wie weet wat hier gaande is?
code:
1
2
3
4
5
6
7
8
9
10
11
12
| function goodsize(size: int64): string;
begin
case size of
0..1024-1: Result := FormatFloat('0.##', size) + ' bytes';
1024..(1024*1024)-1: Result := FormatFloat('0.##', size / 1024) + ' kB';
(1024*1024)..(1024*1024*1024)-1: Result := FormatFloat('0.##', size / (1024*1024)) + ' MB';
else
Result := FormatFloat('0.##', size / (1024*1024*1024)) + ' GB';
end;
end; |
nu, als ik
code:
1
| str := goodsize(20941529008); |
doe, krijg ik mooi een getal met GB achter (19.5 gb) (neemt else)
maar als ik dit doe:
code:
1
| str := goodsize(size := 26222157824); |
dan neemt hij de derde, en krijg ik iets met een MB (25007.4 mb) achter.
het ligt niet aan de FormatFloat, want als ik debug kan ik het mooi zien springen naar de 3e bij 26... en naar else bij 20...
wie weet wat hier gaande is?