FormatFloat Formatsettings with "." not with ","

I have compiled my project with the latest version. Now I have the problem that the function "FormatFloat" no longer interprets the format correctly.
Since I use the program for German, I have the dot "." as the decimal character. But it looks like Webcore expects a comma ','.

Where do I have to intervene so that the decimal point is used again?

The HTML already contains the following line

meta content="de-ch" http-equiv="Content-Language

We did not change anything in the latest releases in the area of FormatFloat or FormatSettings. This is pas2js RTL that wasn't touched.
In what exact context do you encounter an issue? How can we reproduce an issue?

The line that triggers this problem :

strValue := FormatFloat(tempFormat,(ActValue * tempConv));
Label[iobj].Caption := strValue;


ActValue    : smallint;
tempFormat  : string;
tempConv    : real;
strValue    : string;

Example values:

ActValue   =  2103,   250 ,  2212,  2212
tempFormat = '0.0', '0.00', '0.0', '0.00'
tempConv   =  0.01,  0.01,   0.01,  0.01

I am sending two JS files and a screenshot.
I have only replaced this js file on the server and reload the Page.
Then the effect appears.
The effect can be reproduced.


LarsWeb19 new Version.js (2.5 MB)

LarsWeb19 old Version.js (2.3 MB)

The old version is from a backup.
I no longer have the old Delphi installation with the old WebCore version on my PC.

The spec is that FormatFloat uses FormatSettings.DecimalSeparator.

So, on your machine, FormatSettings.DecimalSeparator must be a comma. FormatSettings.DecimalSeparator is picked up from the browser locale settings.
Check FormatSettings.DecimalSeparator and if this is a comma, this is the expected and correct behavior.

I can't follow your statement, because I only and really only change the js file on the server and reload the page then the '.' is replaced by ','.

The computer is always the same. The Browser is the same and i don't change the locale settings.

There are other tools running on this computer that were developed with Delphi, and FormatFloat runs correctly with these, including locale settings on the customer PCs.

I will try to force this point using FormatSettings.

I assume
the old version did not pickup the browser locate for decimalseparator correct
the new version picks up the browser locate for decimalseparator correct

How do I access the FormatSettings in Webcore?

so that I can override it so that the system values are not used.

Delphi access via




The Formatfloat routine does not use the locale-settings of the PC but that of the browser.

This applies to Firefox and Edge.
If German-German is listed before German-Swiss under settings, this is done with "." <-> ","

It looks like the new WebCore now uses this browser setting for the FormatFloat function.

Is there a way to override this setting via js or html so that a "." is always valid?

Otherwise I always have to adjust all FormatFloat depending on the locale-settings.

Set via

Hello Markus, did you find a solution for this problem because I got the same error ?

procedure ConfigFormatSettings;
  FormatSet: TFormatSettings;
  FormatSet                      := TFormatSettings.Create('de-DE');
  FormatSet.DecimalSeparator     := '.';
  FormatSet.ThousandSeparator    := '`';
  FormatSet.CurrencyDecimals     := 2;
  FormatSet.DateSeparator        := '.';
  FormatSet.ShortDateFormat      := '';
  FormatSet.LongDateFormat       := '';
  FormatSet.TimeSeparator        := ':';
  FormatSet.TimeAMString         := 'AM';
  FormatSet.TimePMString         := 'PM';
  FormatSet.ShortTimeFormat      := 'hh:nn';
  FormatSet.LongTimeFormat       := 'hh:nn:ss';

  System.SysUtils.FormatSettings   := FormatSet;

procedure Tfm_Start.WebFormCreate(Sender: TObject);

you set this in the create of the first form, if you do it in the project file (dpr) it will not work

Thank you.