2016-05-24 6 views
0

Ich bin sehr neu in Java. Ich versuche, ein einfaches Geschäftsprogramm zu schreiben, das den niedrigsten Marktpreis (int = "lowMargin") für einen Artikel nimmt, multipliziert es mit .005 und gibt es dann als (double = "BuyAt") aus. Aber ich möchte "BuyAt" auf die nächste ganze Zahl runden. Wie kann ich das machen? Derzeit sieht die Codezeile wie dieseEntfernen von Dezimalstellen von einem Doppel

  double buyAt = ((int)lowMargin * 1.005); 

aber es kommt immer noch mit einem langen dezimal, wenn diese Zeile später

ausgeführt wird
System.out.println("Buy for " + buyAt + " per unit"); 

Jede Hilfe sehr im Voraus geschätzt würde.

+0

Sie werfen 'lowMargin' und multiplizieren sie dann mit einem Doppel. Multipliziere zuerst und beginne nach: '(int) (lowMargin * 1.005);'. – hexafraction

+2

Das ergibt nicht die nächste ganze Zahl. Es wird den Dezimalteil fallen lassen. Verwenden Sie eine Rundungsfunktion. –

+0

Duh ich. Tausend Dank. Ich denke, ich habe viel zu lernen. –

Antwort

0

Bei der Umwandlung von einem Double-Wert in einen Integer-Wert wird die Dezimalzahl abgeschnitten und nicht gerundet. Sie können Math.round() verwenden, um anzugeben, wie Sie runden möchten.

Alternativ können Sie eine "Arrow Man's Rounding" tun, indem Sie 0.5 zu Ihrem Double addieren und dann die ganze Zahl tun; Dies wird x5 nach oben und x.4999 nach unten runden.

Verwandte Themen