Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Java] problema calcolo

    devo calcolare il volume di una sfera ma ho un problema con java...
    la formula è 4/3 * PIGRECO * r^3

    quindi in java risulterebbe

    Codice PHP:
    float f = (float) (Math.PI Math.pow(r3)); 
    ponendo il raggio = 100 si ha

    Codice PHP:
    float f = (float) (Math.PI Math.pow(1003)); 
    il problema è che
    in f viene calcolato il valore 3141592.8
    mentre il valore giusto sarebbe 4186666,67

    ho fatto varie prove e ho trovato che scomponendo la formula in

    Codice PHP:
    float f = (float)(4/3);
    = (float) (Math.PI);
    = (float) (Math.pow(1003)); 
    e facendo debug, non calcola giusto il 4/3, cioè in f alla prima istruzione viene calcolato 1.0 anzichè 1.33.

    Cosa c'e' di sbagliato?
    Perche non calcola 4/3?

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

    Re: [Java] problema calcolo

    Originariamente inviato da superman1001
    non calcola giusto il 4/3
    Ovvio ... è una divisione "intera"!!!
    Nella espressione ci sono 3 operatori matematici: un / e due *. Entrambi gli operatori hanno la stessa priorità e in tal caso si parte comunque da sinistra verso destra. Prima fa 4 / 3 ... sono entrambi interi, quindi la divisione è intera = 1
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    beh.. pensavo che java fosse un pochinopu intelligente...

    Codice PHP:
    float f = ((float)4/(float)3); 
    Codice PHP:
    float f 4;
    f/3

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da superman1001
    beh.. pensavo che java fosse un pochinopu intelligente...
    Ma è così difficile mettere una costante double?? 4.0 / 3
    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
    Originariamente inviato da superman1001
    beh.. pensavo che java fosse un pochinopu intelligente...
    E' talmente intelligente che se vede un operando intero allora dice: vorrà mica fare la divisione per intero?
    Come il C d'altronde.

    E' così semplice dirgli che è un double o un float mettendo anche solo il punto decimale.
    al volante son nervoso

  6. #6
    è una soluzione efficiente, ma poco cognitiva..
    io come persona non mi viene da dire "quattropuntozoero terzi" o "qauttrovirgolazero terzi"

    grazie per l'aiuto!

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da superman1001
    è una soluzione efficiente, ma poco cognitiva..
    io come persona non mi viene da dire "quattropuntozoero terzi" o "qauttrovirgolazero terzi"

    grazie per l'aiuto!
    tu sei una persona, lui è un compilatore che "gira" su un computer con un certo sistema operativo.
    Se non gli dici tu quello che deve fare e come lo deve fare, c'è il rischio che lui improvvisi e non faccia quello che un umano farebbe

    Comunque in alcuni campi la divisione intera è usata e molto
    al volante son nervoso

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da superman1001
    io come persona non mi viene da dire "quattropuntozoero terzi" o "qauttrovirgolazero terzi"
    Guarda che per avere una costante double puoi fare:

    4.0
    4.
    4D
    4d

    Tutte con lo stesso significato: un double con valore 4.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.