- Bij 5/0 krijg ik een foutmelding: DivideByZeroException.
- Bij 5.0/0.0 geeft hij PI/2 terug.
Toch bestaat er een veld Double.NaN.
Hoe komt dit?
Bij 5/0 krijg ik een foutmelding: DivideByZeroException.
5.0/0.0 geeft infinity (niet NaN). Dit verklaart waarom atan PI/2 teruggeeft. Overigens neem ik aan dat je weet dat je in dit soort gevallen beter Math.atan2(y,x) kunt gebruiken.Bij 5.0/0.0 geeft hij PI/2 terug.
Een berekening kan best NaN opleveren. Probeer: Math.sqrt(-1.0);Toch bestaat er een veld Double.NaN.
Hoe komt dit?
The answer is that a two's-complement integer (which is what Java's int is) doesn't have any bits available to store special values like Infinity or NaN, so since the result is not representable in the desired type, an exception has to be thrown. Floating-point numbers do not have this problem (there is a bit pattern available forInfinity), and therefore no exception is needed.