Floating point operations are always approximative, conversions of them to
string even worse.
If you need to convert, it might be better to check the inherent limits
(Min/Max/Infinity etc) and handle them as special case, like:
Double dbl2;
if(str!=double.MinValue.ToString())
dbl2 = Convert.ToDouble(str);
else
dbl2=double.MinValue
"Kevin Blakeley" <(E-Mail Removed)> ha scritto nel
messaggio news:13280E1B-CDAC-4939-B829-(E-Mail Removed)...
>I have some code that takes Double.MaxValue and converts it to a string,
>but
> when I try to convert it back to a double, it fails. Shouldn't the value
> be
> able to be converted back to a double without error?
>
> Here is a simple code sample that demonstrates the problem:
>
> try
> {
> Double dbl = double.MinValue;
> //String sdbl = dbl.ToString(); // This errors as well
> String str = dbl.ToString("N");
>
> // This throws "Value was either too large or too small
> for a Double."
> Double dbl2 = Convert.ToDouble(str);
> }
> catch (Exception ex)
> {
> System.Diagnostics.Debug.Write(ex.Message);
> }
|