Problemi di punto mobile C ++
-
12-11-2019 - |
Domanda
Sono nuovo a C ++ e alla programmazione in generale. Sto provando piccoli programmi solo per sporcarti la mano. Di seguito è riportato un programma che ho creato per calcolare il volume di un cono.
Problema: non importa cosa faccio l'output è sempre un numero intero . Voglio portarlo a due punti decimali. Ho provato a cambiare le variabili in doppio e lungo doppio per ottenere una precisione più alta e nulla funziona.
Come posso risolvere questo problema? E perché sta accadendo? (In dettaglio se possibile) Finora ho anche chiesto a pochi docenti junior di UNI nessuno mi ha dato una risposta adeguata.
int main (){
float radius,length,volume ;
const float PI =22/7.0f;
cin >> radius >> length;
volume =1/3.0f *radius*radius*length;
cout << "Volume is " << volume <<endl;
return 0;
}
Sto usando G ++ su Fedora
EDIT: ho provato presto questo con input come 50 60/70 50 /120 40 che dà numeri interi. Input più piccoli come 3 4 danno decimali.
Modifica: setPrecision () Works. Grazie per tutti per aver inviato questo
Nessuna soluzione corretta