Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Volume sfera

  1. #1

    Volume sfera

    Salve ho un problema strano che mi si pone , il volume di una sfera è = 4/3 di Pigreco*raggio al cubo
    HO scritto la formula così:

    double volume=4/3*piGreco*raggio*raggio*raggio;

    impostando il raggio a 10 ho volume =3141.59 (errato)

    se la stessa formula la scrivo così:

    double volume=4*piGreco*raggio*raggio*raggio/3;

    impostando il raggio a 10 ho volume =4188.78(giusto)

    Cosa mi sfugge?

  2. #2
    4 e 3 sono literal di tipo int, per cui la prima divisione avviene come divisione intera (con decimali troncati), e dà come risultato 1 (che poi viene promosso a double nei calcoli successivi, che coinvolgono altri double). Scrivi 4.0/3.0 per effettuare una divisione tra double.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Grazie mille ecco quello che mi sfuggiva....

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Aggiungo: 4.0/3.0 può essere riscritto anche come 4d/3
    Basta che uno dei due operandi sia un double per avere un double come risultato. La 'd' è per evitare di scrivere il .0
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.