My application works on system with regional settings where decimal separator is comma. (Delphi 10.1)
I have set dot as decimal separator for my application .
Application.UpdateFormatSettings := false;
FormatSettings.DecimalSeparator := '.';
Application.UpdateFormatSettings := true;
This works fine for me.
I have used format('%6.3f', 125.365]) function.
Exe is on for 24*7 on the system..
In the initial phase like 1 or 2 hours format function returns data properly with dot as decimal separator but later on it changes to local settings comma
say 12,365.
How does dot changes to comma suddenly?
Do not rely on the global FormatSettings. Use the second overload of Format, which allows you to specify your own TFormatSettings.
If you have a newer version of Delphi, you can directly use TFormatSettings.Invariant:
S := Format('%6.3f', [125.365], TFormatSettings.Invariant)
Or you create a new TFormatSettings:
S := Format('%6.3f', [125.365], TFormatSettings.Create('en-US'));
Or, e.g. in a version that does not have the Invariant or Create methods, you can set the values "by hand", of course. But set them in your own FormatSettings, not in the global one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With