Entwickler-Ecke
Basistechnologien - Kein DivisionByZero mit Double?
FinalFantasy - Mo 17.10.05 14:24
Titel: Kein DivisionByZero mit Double?
Ist es normal, dass folgendes nicht zu einer DivisionByZero führt:
C#-Quelltext
1: 2:
| double d = 0.0; double k = 5 / d; |
Moderiert von raziel: Cs-Tags hinzugefügt.
raziel - Mo 17.10.05 14:53
Hallo,
jap, ist es. double kann auch die Werte +unendlich und -unendlich, genau wie in C++. Ebenso gibts noch den Wert n. def. = nicht definiert.
Gruß,
raziel
FinalFantasy - Mo 17.10.05 15:23
Wie kann ich dann auf diese Werte (unendlich, nicht definiert) prüfen?
Als Ergebnis bei einer solchen Division erhalte ich immer -2Mrd (also denke ich mal binär gesehen 32 Einser)....
Der Wert NULL eines Doubles ist aber dennoch eindeutig, oder?
Ich habe mal gelernt, dass man Double nie auf einen exakten Wert prüfen sollte, da der Speicheraufbau von Double nicht immer 100% exakte Werte speichert.
Beispielhaft kann bei 13.0 / 2.0 auch 7.4999999999999 rauskommen... eine Prüfung auf var = 7.5 würde dann ja fehlschlagen.
Wenn der Wert NULL aber eindeutig ist, warum dann keine Exception? Durch 0 teilen ist nunmal mathematisch nicht möglich.
In VB führt "geteilt durch 0.0" übrigens auch zu einem DivisionByZero.
Robert_G - Mo 17.10.05 15:42
C#-Quelltext
1: 2: 3: 4:
| double result = 30.0 / 0.0;
if (result == double.PositiveInfinity) throw new InvalidOperationException("nix da!"); |
Wobei double.NegativeInfinity einfach nur - double.PositiveInfinity ist.
btw: Es gibt auch noch double.NaN -> Not a Number
Einen double auf null zu prüfen dürfte in 1.1 unmöglich und in 2.0 nur über einen Nullable<Double> gehen. ;)
Value types sind
keine Refence types und somit können sie
niemals null sein.
FinalFantasy - Mo 17.10.05 15:55
Mhm, wieder was gelernt! :-)
Das "0-Problem" wär mir aber wichtiger.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!