Volmenberechnung

akeszeg

Mitglied
Hallo!
Ich muss folgendes Besipiel lösen :
Die Volumsformel eines Kegels ist V = ((1/3)r^2*Pi*h)
Implementiere diese mittels
• einer Funktion mit der Signatur
static double kegel_volumen(double r, double h),
• und kodiere global den Wert von PI mit einer festen “Variablen” final static double
PI.
Berechne diese beiden Kegel:
• r = 2.1, h = 22
• r = 3, h = 0.3
Gib die Ergebnisse aus.

Ich habe dazu folgendes Programm geschrieben:
Java:
public class Volumen_Kegel_BSP4 {

    
    static double kegel_volumen(double r,double h){
    
 
    return (((r*r)*PI*h)*(1/3)); 
     
    
}
    final static double PI = Math.PI;
    public static void main( String[] args ){
 System.out.println(kegel_volumen(2.1,22));
 System.out.println(kegel_volumen (3,0.3));
 System.out.println(PI);

}}
Das Programm gibt aber als Endergebnis für die beiden Volumina 0.
Warum funktioniert mein Programm nicht?
Könnte mir jemand helfen?

Danke im Voraus !
 

Dobby1

Mitglied
Hi, es liegt ein der Schreibweise von (1/3). Das sind Integer Variablen müsssen aber Double Variablen sein.
Wenn du (1.0/3.0) schreibst müsste es gehen.
Liebe grüsse
 

DarXun

Aktives Mitglied
Hintergrund dazu (falls unbekannt):

Bei
Code:
1/3
handelt es sich um eine Ganzzahldivision. Eigentlich würde ja 0.333... rauskommen. Die Ganzzahldivision liefert allerdings als Ergebnis widerum einen Integer. Dieser schneidet hinter dem Komma einfach ab (man könnte sagen, es wird immer auf die nächste Ganzzahl abgerundet), ergo ist das Ergebnis und in deinem Fall der Faktor gleich 0.

MfG

DarXun
 

Java20134

Bekanntes Mitglied
Das sieht doch aber besser aus, oder?:
Java:
erg = (1.0/3.0)*Math.PI*22*Math.pow(2.1,2);
System.out.println(erg);
Bzw. etwas übersichtlicher.

Oder wenn es allgemein ist, einfach zwei Fragen nach dem Wert h und r stellen und dann ausrechnen lassen.
 
Zuletzt bearbeitet:

Oben