сбой decimal.parse для строки валюты, созданной с помощью String.Format? - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть поле, которое я отображаю через:

String.Format({0:c},amount)

Это приводит к строке "$ 28.28"

Однако, когда я пытаюсь преобразовать обратно в десятичную сумму, я получаюнеправильный формат исключения:

amount = Decimal.Parse(amount.Text, NumberStyles.Currency)

Я также пробовал это с NumberStyles.AllowCurrencySymbol с теми же результатами.Я проверил, что значение в amount.Text составляет "$ 28,28".

Я что-то упустил?Разве эти две операции не должны использовать один и тот же символ валюты и форматы?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011
var amount = decimal.Parse("$28.28", NumberStyles.Currency);

отлично работает для меня.Убедитесь, что ваша входная строка соответствует вашим ожиданиям.

0 голосов
/ 05 апреля 2011

Это на разных машинах? Машины будут настроены иначе. Форматы по умолчанию задаются в региональных настройках панели управления.

...