Die Mask '#999' erlaubt aber auch einen Leerstring, vorallem beim Bearbeiten, genauso wie man auf nur '-' dort eingetragen haben kann.
Aber warum dann Float, wo dort doch nur Int vorkommen kann?
Delphi-Quellcode:
FormatSettings.DecimalSeparator := '.';
Application.UpdateFormatSettings := false;
Dafür haben FloatToStr, StrToFloat und TryStrToFloat einen zweiten, bzw. StrToFloatDef einen dritten Parameter.