jswriter: fixed double greater than int64

git-svn-id: trunk@38113 -
This commit is contained in:
Mattias Gaertner 2018-02-04 18:48:26 +00:00
parent 1ddbaa946c
commit d501448c04
2 changed files with 14 additions and 2 deletions

View File

@ -580,8 +580,12 @@ begin
exit;
end;
jstNumber :
if Frac(V.AsNumber)=0 then // this needs to be improved
Str(Round(V.AsNumber),S)
if (Frac(V.AsNumber)=0)
and (V.AsNumber>=double(low(int64)))
and (V.AsNumber<=double(high(int64))) then
begin
Str(Round(V.AsNumber),S);
end
else
begin
Str(V.AsNumber,S);

View File

@ -4406,6 +4406,8 @@ begin
' fn12345678_9 = -12345678.9;',
' f1_0En12 = 1E-12;',
' fn1_0En12 = -1E-12;',
' maxdouble = 1.7e+308;',
' mindouble = -1.7e+308;',
'var',
' d: double = b;',
'begin',
@ -4430,6 +4432,8 @@ begin
' d:=fn12345678_9;',
' d:=f1_0En12;',
' d:=fn1_0En12;',
' d:=maxdouble;',
' d:=mindouble;',
'']);
ConvertProgram;
CheckSource('TestDouble',
@ -4449,6 +4453,8 @@ begin
'this.fn12345678_9 = -12345678.9;',
'this.f1_0En12 = 1E-12;',
'this.fn1_0En12 = -1E-12;',
'this.maxdouble = 1.7e+308;',
'this.mindouble = -1.7e+308;',
'this.d = 4.4;'
]),
LinesToStr([
@ -4473,6 +4479,8 @@ begin
'$mod.d = -1.23456789E7;',
'$mod.d = 1E-12;',
'$mod.d = -1E-12;',
'$mod.d = 1.7E308;',
'$mod.d = -1.7E308;',
'']));
end;