Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    cosa viene salvato quando si ha un errore matematico

    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:
    codice:
    double a=1;
    double d=Math.sqrt(a)
    d cosa conterrà dopo ciò?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: cosa viene salvato quando si ha un errore matematico

    Originariamente inviato da zipangulu
    cosa viene salvato quando si ha un errore matematico?
    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
    codice:
    double a=1;
    double d=Math.sqrt(a)
    d cosa conterrà dopo ciò?
    Il risultato .... non ho capito il dubbio ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: cosa viene salvato quando si ha un errore matematico

    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:
    codice:
    double a=1;
    double d=Math.sqrt(a)
    d cosa conterrà dopo ciò?
    Scusa ma non riesco a capire cosa dovrebbe dare errore.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: cosa viene salvato quando si ha un errore matematico

    Originariamente inviato da Rubox
    Scusa ma non riesco a capire cosa dovrebbe dare errore.
    Con un valore in ingresso di 1 la radice è .... 1.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: Re: Re: cosa viene salvato quando si ha un errore matematico

    Originariamente inviato da andbin
    Con un valore in ingresso di 1 la radice è .... 1.
    forse voleva la radice di -1, che da NaN

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: cosa viene salvato quando si ha un errore matematico

    Originariamente inviato da Rubox
    forse voleva la radice di -1
    Ma l'ho detto ... con un valore negativo sqrt() restituisce un NaN.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    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:
    codice:
    String s="sqrt(x)";
    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:
    esempio in x=-500
    fa:
    codice:
    sqrt(-500)
    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 NaN
    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:
    codice:
    for(int i=0;i<array.length,i++){
    if(array[i]==NaN){
    //fai qualcosa
    }
    }
    ma in questo modo mi da errore!
    ho fatto anche:
    codice:
    for(int i=0;i<array.length,i++){
    if((array[i]+"").equals("NaN")){
    //fai qualcosa
    }
    }
    così non dà errore ma non entra nel ramo if

    cosa devo fare quindi?

    Ps.prima volevo scrivere sqrt(-1) dà NaN

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da zipangulu
    come faccio a dire "se trovi NaN" fai ciò....
    if (Double.isNaN(valore)) { ... }


    Sicuramente non ==NaN e l'uso di equals("NaN") dovrebbe funzionare se converti il valore in stringa ma ... non è pulito.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    perfetto!
    andbin grazie!(per la 1000sima volta )

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.