[fpc-pascal] Formatting of JSON float values
Graeme Geldenhuys
mailinglists at geldenhuys.co.uk
Wed Dec 2 19:02:25 CET 2015
Hi,
I'm storing the following values in a JSON file using
values:
23.67, 23.97, 23.87, 10.0
and stored in a JSON object using code as follows:
procedure TFPReportStreamer.WriteFloat(AName: String; AValue: Extended);
begin
CurrentElement.Add(AName, AValue);
end;
When it is written I see the following:
{
"Report": {
"Name": "MyReport1",
"DateCreated": "20151202T175625",
"Pages": {
"0": {
"Layout": {
"val1": 2.36700000000000E+001,
"val2": 2.39700000000000E+001,
"val3": 2.38700000000000E+001,
"val4": 1.00000000000000E+001
},
...snip....
}
It's correct, but just curious - is there a way to format the floating
values and limit them to 4 decimal places? My JSON output should then
look something like
{
"Report": {
"Name": "MyReport1",
"DateCreated": "20151202T175625",
"Pages": {
"0": {
"Layout": {
"val1": 23.6700,
"val2": 23.9700,
"val3": 23.8700,
"val4": 10.0000
},
...snip....
}
Python and Java allows this. Can FPC too?
If this was a database, I would normally convert the floats to a integer
value and truncate what I don't need (eg: currency amounts). Then when
read back, I would divide the integer value again to get to the original
float value. But I don't really want to do this with JSON.
Regards,
- Graeme -
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
My public PGP key: http://tinyurl.com/graeme-pgp
More information about the fpc-pascal
mailing list