Вы можете попробовать:
WhitelistingTextInputFormatter(RegExp(r'(^\d*\.?\d*)'))
И ниже приведена более строгая версия этого регулярного выражения. Если пользователь нажмет любой недопустимый символ, отличный от желаемого формата, поле будет очищено.
WhitelistingTextInputFormatter(RegExp(r'(^\d*\.?\d*)$'))