2017-04-10 2 views
1

Ich bekomme diesen Fehler "Fehler: inkompatible Typen: mögliche verlustbehaftete Konvertierung von Double in Float" für das Volumen.Volumen einer Kugel als float

Scanner keyboard = new Scanner(System.in); 
    float radius = keyboard.nextFloat(); 
    float area; 
    float volume; 

    area = (float)(4.0*Math.PI*radius*radius); 
    volume = (float)(4.0/3) * Math.PI * Math.pow(radius, 3); 

Wie kann ich einen Float-Wert für das Volumen erhalten?

Antwort

5

Da Math#pow eine double zurückgibt, müssen Sie den gesamten Ausdruck in eine float statt nur den ersten Ausdruck umwandeln.

volume = (float) ((4.0/3) * Math.PI * Math.pow(radius, 3)); 
+0

Ich sehe, danke für die Aufräumung! – Ezsh

+0

BTW. '4.0' ist auch ein' double', wenn Sie ein f '4.0f' hinzufügen, dann wäre es ein' float'. – maraca

+0

@Ezsh Gern geschehen! Bitte akzeptieren Sie die Antwort, wenn Ihr Problem gelöst ist! –