Если вы заранее знаете правильную культуру (например, потому что знаете пользователя, создавшего файл), вы можете попытаться проанализировать предоставленное значение с помощью соответствующего CultureInfo
или NumberFormatInfo
:
Decimal value = Decimal.Parse(input, new CultureInfo("es-ES"));
Но если тип не известен заранее, вам придется проверять его вручную, проверяя символы, пока не найдете разделитель. (И даже при таком подходе предполагается, что у вас всегда есть десятичный разделитель, такой, что one
записывается как 1.0
, а не 1
.)
Вы не можете просто попробовать каждый ожидаемый формат один за другим, потому что вы можете получить ложные срабатывания.
10,000
означает что-то допустимое , но различное для обоих форматов.