Waarom gaat dit fout ?

Published Wed, Feb 18 2004 1:16 PM

Waarom gaat dit fout ? En hoe moet het wel ?

string x = double.MinValue.ToString();
double y = Convert.ToDouble(x);

de foutmelding is:
An unhandled exception of type 'System.OverflowException' occurred in mscorlib.dll
Additional information: Value was either too large or too small for a Double.

Hiermee gaat het ook niet goed:
string x = double.MinValue.ToString(“F“);

Comments

# Pascal Naber said on Wednesday, February 18, 2004 3:31 PM

Dim x As String
Dim y As Double

x = CStr(Double.MinValue)

If x = CStr(Double.MinValue) Then
y = Double.MinValue
End If

# Pascal Naber said on Wednesday, February 18, 2004 3:43 PM

Wat is dit ? VB is voor degene die geen c# kennen. :-)

nu even serieus:
helaas kan ik deze manier van coderen niet gebruiken.

de string die gevuld wordt met de double.MinValue is de ValueToCompare property van een CompareValidator in asp.net
de property Type wordt dan op double ingesteld.

een gebruiker mag simpelweg geen waarde lager dan de minvalue van een double invoeren.
en daar moet een controle op zitten.

bedankt

# Pascal Naber said on Wednesday, February 18, 2004 4:15 PM

vb is een taal die gecompileerd wordt tot IL net als C#

als VB een prutstaal is is C# dat ook.

Maar als je de proptype gewoon op double zet.....
Dan zou minvalue en maxvalue vanzelf goed moeten gaan.....

of gaat dit niet

# Pascal Naber said on Wednesday, February 18, 2004 11:42 PM

ok, via nieuwsgroepen van microsoft de oplossing:
Sheila Jones <sheilavjones@btopenworld.com>
had het antwoord:

Because
string x = double.MinValue.ToString();
rounds x to -1.79769313486232E+308, whereas the actual minimum value
is -1.7976931348623157E+308. This is a bit higher, so you get the overflow
error when you try to convert it back.

Try using
string x = double.MinValue.ToString("R");
to convert using the 'round trip' (no rounding) format instead.

I hope that helps.


en ja, it helps

# Pascal Naber said on Friday, February 20, 2004 8:27 AM

Wat een genot om jullie (Pascal en Patrick) te zien praten over C# en VB.NET ;-)

Afgezien van mijn voorkeur voor de 'clean syntax' en betere aansluiting op de OO-syntax van C# geeft die opmerking van Wellink wel blijk van enige IT-filosofie:

"vb is een taal die gecompileerd wordt tot IL net als C#"

Brilliant reply!

# Pascal Naber said on Friday, February 20, 2004 9:52 AM

Waarom wordt ik elke keer weg gemodereerd?

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Please add 3 and 8 and type the answer here: