cosa viene salvato quando si ha un errore matematico?
ad esempio io in una variabile double salvo il risultato di una determinata operazione radice
es:
d cosa conterrà dopo ciò?codice:double a=1; double d=Math.sqrt(a)
cosa viene salvato quando si ha un errore matematico?
ad esempio io in una variabile double salvo il risultato di una determinata operazione radice
es:
d cosa conterrà dopo ciò?codice:double a=1; double d=Math.sqrt(a)
Metodi come sqrt non lanciano eccezioni. Il risultato può comprendere valori particolari come gli infiniti o NaN. Se ad esempio passi a sqrt() un valore negativo, ottieni come risultato un NaN, proprio per indicare in questo caso che non c'è un risultato valido per la radice di un numero negativo!Originariamente inviato da zipangulu
cosa viene salvato quando si ha un errore matematico?
Il risultato .... non ho capito il dubbio ...Originariamente inviato da zipangulu
d cosa conterrà dopo ciò?codice:double a=1; double d=Math.sqrt(a)
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Scusa ma non riesco a capire cosa dovrebbe dare errore.Originariamente inviato da zipangulu
cosa viene salvato quando si ha un errore matematico?
ad esempio io in una variabile double salvo il risultato di una determinata operazione radice
es:
d cosa conterrà dopo ciò?codice:double a=1; double d=Math.sqrt(a)
Con un valore in ingresso di 1 la radice è .... 1.Originariamente inviato da Rubox
Scusa ma non riesco a capire cosa dovrebbe dare errore.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
forse voleva la radice di -1, che da NaNOriginariamente inviato da andbin
Con un valore in ingresso di 1 la radice è .... 1.
Ma l'ho detto ... con un valore negativo sqrt() restituisce un NaN.Originariamente inviato da Rubox
forse voleva la radice di -1
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
si ok...ma c'è un motivo preciso per cui ho posto questa domanda
ti spiego la situazione:
il mio programma java salva in un array di double tutti i risultati di una stringa-funzione
es:
e per un intervallo tra -500 e 500 salva i risultati relativi alla funzione corrispondente scambiando x cl valore dell'intervallo in cui si trova:codice:String s="sqrt(x)";
esempio in x=-500
fa:
da quello che ho detto sopra si capisc che avendo a che fare con la stringa-funzione sopra posta come esempio le prime 500 posizioni dell'array saranno NaNcodice:sqrt(-500)
ma il problema che sorge è
volendo io fare un check tra i dati salvati nell'array come faccio a dire "se trovi NaN" fai ciò....
ho provato a fare:
ma in questo modo mi da errore!codice:for(int i=0;i<array.length,i++){ if(array[i]==NaN){ //fai qualcosa } }
ho fatto anche:
così non dà errore ma non entra nel ramo ifcodice:for(int i=0;i<array.length,i++){ if((array[i]+"").equals("NaN")){ //fai qualcosa } }
cosa devo fare quindi?
Ps.prima volevo scrivere sqrt(-1) dà NaN![]()
if (Double.isNaN(valore)) { ... }Originariamente inviato da zipangulu
come faccio a dire "se trovi NaN" fai ciò....
Sicuramente non ==NaN e l'uso di equals("NaN") dovrebbe funzionare se converti il valore in stringa ma ... non è pulito.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
perfetto!
andbin grazie!(per la 1000sima volta)