В соответствии с Reference Source:Анализировать с несколькими десятичными разделителями
// . - Decimal point. The first '.' character
// in the format string determines the location of the decimal separator in the
// formatted value; any additional '.' characters are ignored. The actual
// character used as a the decimal separator in the output string is given by
// the NumberFormatInfo used to format the number.
первый десятичный разделитель должен быть использован, последующие десятичные разделители должны быть проигнорированы. Однако следующее утверждение
float.Parse("1.000.000", new CultureInfo("en"))
бросает FormatException
с сообщением «Входная строка не была в правильном формате».
Это ошибка или предполагаемое поведение?
Вы читаете комментарии, в которых вы должны прочитать [документацию] (https://msdn.microsoft.com/en-us/library/2thct5cb.aspx): _ "строку формы: ' [ ws] [sign] [integ-digits [,]] integ-digits [. [дробные цифры]] [e [sign] exponential-digits] [ws] '" _, в котором упоминается ровно один символ десятичной запятой. – CodeCaster
Для меня это похоже на намеренное поведение. «1.000.000» просто не является допустимым числом на английском языке. Похоже, что это фактически строка в локали, которая использует '.' в качестве разделителя тысяч. –
Я столкнулся с ситуацией, когда символ _same_ использовался как _decimal separator_ и как _thousand separator_. Windows (и класс 'CultureInfo') позволяют это сделать. –