Erstmal ist es totaler Schwachsinn, dass INIs überhaupt lokalisiert gespeichert/gelesen werden.
(aber für INIs gibt es ja leider auch eigentlich keine globale einheitliche Konvention/Richtline/Norm/...)
Und leider kam in den letzten 20 Jahren auch noch keiner auf die Idee eine FormatSettings-Variable in TCustomIniFile für Floats und DateTimes einzufügen.
Fazit:
- Du mußt, wie schon gesagt wurde, selbst den Float behandeln
StrToFloat(INI.ReadString(...), DeinFormatSettings)
- manuell, vor Ort
- TIniFile ableiten und diese Funktionen überschreiben überdecken
- oder besser noch einfach mit einem ClassHelper erweitern, z.B. um ein ReadFloatUS
- oder du stellst das globale FormatSettings in der SysUtils um
- also entweder vor und nach dem Zugriff auf die INI, vorübergehend (aber ist auch keine gute Idee, da nicht threadsave usw.)
- oder permanent dein Programm auf Englisch umstellen
System.SysUtils.FormatSettings := TFormatSettings.Create('en-US');
Aber vielleicht wird das Problem ja im nächsten Jahrtausend behoben sein.
https://quality.embarcadero.com/browse/RSP-17616