3 Stimmen

Was ist an dieser Aufteilung falsch?

Hier ist der Code:

class testsum
{ 
    public static void main(String arg[]) 
    {
        double sum=0; 
        double fraction;
        fraction=-1/9;
        System.out.println("fraction: "+fraction); 
        fraction=-1; 
        fraction=fraction/9; 
        System.out.println("fraction: "+fraction); 
    } 
} 

die Ausgänge sind 0 y luego -0.11111111

warum war die erste Ausgabe 0 und nicht -0.11111111111 ?

0voto

aib Punkte 42913

Denn -1 y 9 sind ganze Zahlen, also -1/9 ist eine ganzzahlige Division (mit dem Ergebnis 0 was bei der Verdopplung zu 0.0 ).

Um eine Fließkommadivision durchzuführen, sollten Sie eine der Zahlen in Double umwandeln, (double) 9 , 9d oder einfach 9.0 .

Im letzteren Fall, fraction ist bereits doppelt ( -1.0 ) also fraction/9 ist eine Gleitkommadivision.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X