PDA

Visualizza versione completa : [Java] - NaN


Cacciavite
27-05-2008, 00.24.39
Sarà una domanda stupida, ma volevo sapere per certo se il risultato di un qualsiasi numero (compreso lo zero e lo stesso NaN, il tipo è Double) moltiplicato per NaN dà come risultato NaN o se produce eccezioni.
E' abbastanza fondamentale per il programma che sto sviluppando.

Grazie.

Cacciavite
28-05-2008, 17.34.32
...devo aver fatto una domanda o troppo stupida o troppo difficile, 44 visite nemmeno 1 risposta.
Rinnovo la richiesta. Ho cercato un pò su google ma le informazioni su questo NaN sono sempre le stesse, con tanto di dissertazioni matematico-filosofiche.

Alhazred
28-05-2008, 19.27.13
Operations involving NaN

Double.NaN + Double.NaN -> NaN
Float.NaN + 2.0 -> NaN
Float.NaN * 3.0 -> NaN
(0.0 / 0.0) * Float.POSITIVE_INFINITY -> NaN
Math.abs(0.0 / 0.0) -> NaN
(int) (Double.NaN) -> 0

All boolean operations involving "NaN" results in a false value.

Double.NaN > 1.0 -> false
Double.NaN < 1.0 -> false
Double.NaN == 1.0 -> false
Float.NaN < -3.0 -> false
Float.NaN > Float.POSITIVE_INFINITY -> false
Float.NaN < Float.POSITIVE_INFINITY -> false
(0.0 / 0.0) == (0.0 / 0.0) -> false

Cacciavite
28-05-2008, 19.37.09
grazie mille per il supporto. Le avevo già trovate un pò di queste, ma mi manca lo NaN*NaN e 0*NaN :\

Alhazred
28-05-2008, 19.53.39
Il fatto che nella tabella non siano riportai questi casi mi fa pensare che si risolvano in eccezioni.
Perché non provi a scrivere un programmino che faccia queste due operazioni e vedi come si comporta?

Cacciavite
29-05-2008, 00.43.01
Proverò a farlo. Però strano non ci sia un documento ufficiale.