Explorar o código

* made application of rounding correction more accurate
(does *not* resolve #14230)

git-svn-id: trunk@13494 -

Jonas Maebe %!s(int64=16) %!d(string=hai) anos
pai
achega
30bfca91a9
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      rtl/inc/real2str.inc

+ 4 - 1
rtl/inc/real2str.inc

@@ -367,8 +367,11 @@ begin
           for fracCount := 1 to currPrec do
             factor := factor * 10.0;
           corrval := corrval / factor;
+          { d is currently in [0.0,1.0[ and roundcorr has been chosen so that
+            1.0+roundcorr <> 1.0 -> add d*roundcorr to d to scale the correction
+            to the actual value of d }
           if (d<>0.0) then
-            d:=d+roundCorr;
+            d:=d+d*roundCorr;
           if d >= corrVal then
             d := d + corrVal;
           if int(d) = 1 then