Sign in Join
Wiki copytemporary

DecimalSeparator: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11> **Warning:** This variable is deprecated. Please see hints for information on replacement.
22
33**DecimalSeparator** is a [[Global variables|global char variable]] whose contents is determined by the used [[locale]]. It is used for representation of floating point numbers on screen and within functions like StrToFloat() and FloatToStr().
44
55As long as every instance of a program uses the same decimal separator everything will behave as expected. However, if one instance of a program has its locale set to Dutch (nl_NL), writes a file containing some floating point numbers which is read by another instance of the same program with a locale set to US-English (en_US) you run into trouble because a formatted number like 123,456 will generate a conversion exception...
66
77A workaround can be to use a function like:
88
99``` pascal
1010function DecFloat2Str( const d: double ): string;
1111var
1212 myseparator: char;
1313begin
1414 myseparator := DecimalSeparator;
1515 DecimalSeparator := '.';
1616 Result := FloatToStr( d );
1717 DecimalSeparator := myseparator;
1818end;
1919```
2020
2121DecimalSeparator is defined in sysinth.inc as:
2222
23-` DecimalSeparator : Char absolute DefaultFormatSettings.DecimalSeparator deprecated;`
23+```text
24+ DecimalSeparator : Char absolute DefaultFormatSettings.DecimalSeparator deprecated;
25+```
2426
2527## Important hint
2628
2729DecimalSeparator is deprecated. In all new projects, it should be replaced by the [[DefaultFormatSettings]] variable.
2830
2931## See also
3032
3133- [[ThousandSeparator]]
3234- [[ListSeparator]]
3335- [Documentation on DecimalSeparator](http://www.freepascal.org/docs-html/rtl/sysutils/decimalseparator.html)
3436
3537---
3638*From the Free Pascal wiki, page "DecimalSeparator", as it stood on 2023-04-06 after a change by Jwdietrich, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history