just do the below:
program newtestfpjson;
uses sysutils
, fpjson
;
type
TJSONFloat4Number = class(TJSONFloatNumber)
protected
function GetAsString: TJSONStringType; override;
end;
function TJSONFloat4Number.GetAsString: TJSONStringType;
var
F: TJSONFloat;
begin
F := GetAsFloat;
Str(F:0:4, Result); // format with your preferences
end;
var
jsObjValues: TJSONObject;
rValor: real;
cValor: currency;
sValor: single;
dValor: double;
begin
SetJSONInstanceType(jitNumberFloat, TJSONFloat4Number);
rValor := 1.23456;
cValor := 1.23456;
sValor := 1.23456;
dValor := 1.23456;
jsObjValues := TJSONObject.Create;
jsObjValues.Add('REAL', rValor);
jsObjValues.Add('CURRENCY', cValor);
jsObjValues.Add('SINGLE', sValor);
jsObjValues.Add('DOUBLE', dValor);
WriteLn(jsObjValues.FormatJSON());
ReadLn();
end.
And the output:
{
"REAL" : 1.2346,
"CURRENCY" : 1.2346,
"SINGLE" : 1.2346,
"DOUBLE" : 1.2346
}