How to format a Currency string to Integer?

21,634
int value = int.Parse("$35.00", NumberStyles.Currency);

Should give you the answer you need.

However, a value like $35.50 converted to an integer will likely not return what you want it to, as Integers do not support partial (decimal) numbers. You didn't specify what to expect in that situation.

[EDIT: Changed double to decimal which is safer to use with currency]

If you want to get a value of 35.5 in that situation, you might want to use the decimal type.

decimal value = decimal.Parse("$35.00", NumberStyles.Currency);

Note that you have to be very careful when dealing with money and floating point precision.

Share:
21,634
Prabhakaran
Author by

Prabhakaran

Working as a Senior Application Developer in a reputed Software Company.

Updated on July 09, 2022

Comments

  • Prabhakaran
    Prabhakaran almost 2 years

    I'm have a string with currency format like $35.00 and this has to be converted to 35.

    Is that possible to retrieve using String.Format{ }

  • Noon Silk
    Noon Silk over 13 years
    You should use the decimal type for all currency/money-related operations.
  • Khalos
    Khalos over 13 years
    Ah yes, a very good point. I personally never write code that has to do with money and tend to forget the decimal type even exists.
  • Khalos
    Khalos over 13 years
    If it worked for you, consider marking it as the answer. That way other people with the same problem know what worked. Glad you got it.