Преобразовать строку в десятичную, сохраняя дроби - PullRequest
57 голосов
/ 24 ноября 2010

Я пытаюсь преобразовать 1200.00 в decimal, но Decimal.Parse() удаляет .00. Я пробовал несколько разных методов, но он всегда удаляет .00, кроме случаев, когда я предоставляю дробь, отличную от 0.

string value = "1200.00";

Метод 1

 var convertDecimal = Decimal.Parse(value ,  NumberStyles.AllowThousands
       | NumberStyles.AllowDecimalPoint | NumberStyles.AllowCurrencySymbol);

Метод 2

 var convertDecimal = Convert.ToDecimal(value);

Метод 3

var convertDecimal = Decimal.Parse(value,
       NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);

Как мне преобразовать string, содержащий 1200.00, в decimal, содержащий 1200.00?

Ответы [ 11 ]

0 голосов
/ 08 апреля 2014

Значение такое же, хотя печатное представление не соответствует ожидаемому:

decimal d = (decimal )1200.00;
Console.WriteLine(Decimal.Parse("1200") == d); //True
...