C # Есть ли встроенная функция для преобразования отформатированной строки обратно в число? - PullRequest
2 голосов
/ 11 апреля 2011

Как преобразовать строку, которая является отформатированным числом, обратно в число?

  Decimal percent = 55.76;
  String strPercent = String.Format("{0:0.0}%", percent);
  Decimal dollars = 33.5;
  String strDollars = String.Format("{0:C}", dollars);

Скажем позже, я хочу вернуть процент и значение в долларах в виде чисел. Есть ли встроенный способ сделать это с помощью C # и asp.net? Я знаю, как использовать регулярные выражения и функцию String, но я прочитал о функции Decimal.Parse () из http://msdn.microsoft.com/en-us/library/ks098hd7(vs.71).aspx.

Есть ли встроенная функция для этого? Если да, то как я могу его использовать?

Ответы [ 2 ]

5 голосов
/ 11 апреля 2011

Используя Decimal.Parse, вы можете передать System.Globalization.NumberStyles, чтобы контролировать, как анализируются строки. Это позволит вам легко конвертировать валютные строки в десятичные. К сожалению, NumberStyles не поддерживает проценты, поэтому вам все равно придется отдельно вырезать символ процента.

        Decimal percent = 55.76M;
        String strPercent = String.Format("{0:0.0}%", percent);
        Decimal dollars = 33.5M;
        String strDollars = String.Format("{0:C}", dollars);

        Decimal parsedDollars = Decimal.Parse(strDollars, NumberStyles.Currency);

        Decimal parsedPercent = Decimal.Parse(
            strPercent.Replace(
                NumberFormatInfo.CurrentInfo.PercentSymbol,
                String.Empty));

См. Документацию NumberStyles для получения дополнительной информации.

5 голосов
/ 11 апреля 2011

int.Parse, double.Parse и т. Д. Ваши друзья.

Редактировать: Пропущена часть пунктуации.Будет повторно расследовать и придумать что-нибудь получше.

Редактировать 2: Оказывается, int.Parse действительно перегружен, чтобы принять строку формата: http://msdn.microsoft.com/en-us/library/c09yxbyt.aspx

...