Properly handle empty values when applying types, use normal float casting, if possible instead of locale.atof