9 Stimmen

Double-Wert gibt 0 zurück

Hier ist ein Beispiel:

Double d = (1/3);
System.out.println(d);

Das Ergebnis ist 0, nicht 0,33333... wie es sein sollte.

Weiß das jemand?

38voto

Firas Assaad Punkte 23800

Das liegt daran, dass 1 y 3 werden behandelt als integers wenn Sie es nicht anders angeben, also 1/3 wertet den integer 0 die dann in den double 0 . Versuchen Sie, das Problem zu beheben (1.0/3) oder vielleicht 1D/3 ausdrücklich angeben, dass es sich um doppelte Werte handelt.

12voto

coobird Punkte 155882

Wenn Sie eine int s, die Sie mit Hilfe der Fließkommadivision dividieren wollen, müssen Sie die int zu einer double :

double d = (double)intValue1 / (double)intValue2

(Eigentlich nur Gießen intValue2 sollte ausreichen, um die intValue1 angeworfen werden double automatisch, glaube ich.)

1voto

Vijay Dev Punkte 25676

Verwenden Sie doppelt und nicht Doppelter es sei denn, Sie müssen diese Werte im Sinne des Objekts verwenden. Achten Sie auf die Autoboxing Konzepte

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