DataStream updated

This commit is contained in:
Michael Schimmel
2026-01-21 14:09:26 +01:00
parent ceb6f13833
commit ef4583c2ae
9 changed files with 198 additions and 1280 deletions
+6 -11
View File
@@ -86,17 +86,12 @@ begin
var newValue := AValue.GetValue;
var scaleDiff := ANewScale - oldScale;
if scaleDiff > 0 then
if (scaleDiff > 0) then
begin
// Increasing scale: multiply by 10^scaleDiff, checking for overflow at each step.
for var i := 1 to scaleDiff do
begin
if newValue > (MAX_VALUE_61BIT div 10) then
raise EOverflow.Create('Decimal scale up resulted in an overflow.');
if newValue < (MIN_VALUE_61BIT div 10) then
raise EOverflow.Create('Decimal scale up resulted in an overflow.');
newValue := newValue * 10;
end;
var multiplier := PowersOf10[scaleDiff];
if (newValue > (MAX_VALUE_61BIT div multiplier)) or (newValue < (MIN_VALUE_61BIT div multiplier)) then
raise EOverflow.Create('Decimal scale up resulted in an overflow.');
newValue := newValue * multiplier;
end
else
begin
@@ -380,7 +375,7 @@ begin
if val < 0 then
exit(-1);
if val > 0 then
exit(-1);
exit(1);
exit(0);
end;