I have the following piece of code:
double shortfall = GetSomeNumber(); //3.3588548831176006E+29
if (shortfall > 0)
{
returnValue = Convert.ToDecimal(short
Well, it's fairly self-explanatory.
decimal.MaxValue is 79,228,162,514,264,337,593,543,950,335 - your number is bigger than this.
Although decimal has a finer precision than double, double has a bigger range - it can handle very, very large and very, very small numbers.
Now, if you could tell us what you're really trying to do, we could try to help find a solution... it's rarely a good idea to mix double and decimal, to be honest.
It means that the value returned cannot be converted to decimal as it is too large.
Decimal values can be between positive 79,228,162,514,264,337,593,543,950,335 to negative 79,228,162,514,264,337,593,543,950,335 - see MSDN.
Double can handle much larger numbers - negative 1.79769313486232e308 to positive 1.79769313486232e308. These will not all be convertible to Decimal.