10

I 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{ }

Adam Orłowski
  • 4,268
  • 24
  • 33
Prabhakaran
  • 1,264
  • 2
  • 20
  • 47
  • 3
    possible duplicate of [Convert any currency string to double](http://stackoverflow.com/questions/2753701/convert-any-currency-string-to-double) – Noon Silk Nov 04 '10 at 06:30
  • Something very similar was asked before. http://stackoverflow.com/questions/2753701/convert-any-currency-string-to-double – Patko Nov 04 '10 at 06:27

1 Answers1

20
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.

Khalos
  • 2,335
  • 1
  • 23
  • 38
  • 2
    You should use the `decimal` type for all currency/money-related operations. – Noon Silk Nov 04 '10 at 06:29
  • 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 Nov 04 '10 at 06:31
  • 1
    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. – Khalos Nov 04 '10 at 06:49