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; exit;
end; end;
jstNumber : jstNumber :
if Frac(V.AsNumber)=0 then // this needs to be improved if (Frac(V.AsNumber)=0)
Str(Round(V.AsNumber),S) and (V.AsNumber>=double(low(int64)))
and (V.AsNumber<=double(high(int64))) then
begin
Str(Round(V.AsNumber),S);
end
else else
begin begin
Str(V.AsNumber,S); Str(V.AsNumber,S);

View File

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