Difference between Convert.ToDecimal(string) & Decimal.Parse(string)


Question

What is the difference in C# between Convert.ToDecimal(string) and Decimal.Parse(string)?

In what scenarios would you use one over the other?

What impact does it have on performance?

What other factors should I be taking into consideration when choosing between the two?

1
26
9/19/2013 3:31:51 PM

Accepted Answer

From bytes.com:

The Convert class is designed to convert a wide range of Types, so you can convert more types to Decimal than you can with Decimal.Parse, which can only deal with String. On the other hand Decimal.Parse allows you to specify a NumberStyle.

Decimal and decimal are aliases and are equal.

For Convert.ToDecimal(string), Decimal.Parse is called internally.

Morten Wennevik [C# MVP]

Since Decimal.Parse is called internally by Convert.ToDecimal, if you have extreme performance requirements you might want to stick to Decimal.Parse, it will save a stack frame.

39
9/18/2008 1:33:18 AM

There is one important difference to keep in mind:

Convert.ToDecimal will return 0 if it is given a null string.

decimal.Parse will throw an ArgumentNullException if the string you want to parse is null.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon