BigDecimal Rundet falsche

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Leutz,

ich hab folgendes Problem, rechne ich 5 * 1,251 (menge * preis)
kommt 6,255 raus runde ich das nun müssten es doch 6,26 sein
oder?

Mit dem folgendem kommt aber 6,25 raus.

Code:
BigDecimal bd = new BigDecimal(menge * preis);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
ergebnisliste[i] = bd.doubleValue();

menge, preis und ergebnisliste sind vom Typ double.

Ich versteh die Welt nicht mehr ???:L
 

Lim_Dul

Top Contributor
Code:
	public static void main(String[] args) {
		double menge = 5.0;
		double preis = 1.251;
		System.out.println(menge*preis);
	}
Ausgabe: 6.254999999999999
Und das ergibt gerundet nun mal 6.25.
Double Rechnungen sind (fast) nie genau!

Das hingegen:
Code:
		BigDecimal mengeBD = new BigDecimal("5.0");
		BigDecimal preisBD = new BigDecimal("1.251");
		BigDecimal bd = mengeBD.multiply(preisBD);
		bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
		System.out.println(bd);
liefert 6.26
 

Eldar

Aktives Mitglied
hehe.. java rechnet intern mit mehr Stellen als es ausgibt.. gewöhn dich schonmal dran wenn du mit double rechnen willst.
 

André Uhres

Top Contributor
Und wenn man, wie Gast es gemacht hat, BigDecimal mit double vermischt, dann gewinnt man natürlich nicht viel dabei. Man muss es so machen wie Lim_Dul: im Konstruktor von BigDecimal soll auch kein double/float rein, sondern nur String.
 
G

Guest

Gast
axo, nun dann werd' ich es wie LIM_DUL machen. Vielen Dank für die 'Infos.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Robertop BigDecimal ergänzt unnötige 0 am Ende Allgemeine Java-Themen 6
M Probleme mit BigDecimal Allgemeine Java-Themen 1
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
M float, double, BigDecimal Allgemeine Java-Themen 5
A Ungünstige BigDecimal-Klasse Allgemeine Java-Themen 44
ARadauer BigDecimal und Not a Number Allgemeine Java-Themen 4
R BigDecimal, Position des Kommas Allgemeine Java-Themen 2
J Umstellung von double auf BigDecimal Allgemeine Java-Themen 5
F BigDecimal devide Allgemeine Java-Themen 5
S wiedermal ein kleines Problem mit BigDecimal Allgemeine Java-Themen 5
B BigDecimal Schleifen Allgemeine Java-Themen 9
J BigInteger und BigDecimal im Eclipse-Debugger Allgemeine Java-Themen 3
hdi Probleme beim Rechnen mit BigDecimal Allgemeine Java-Themen 5
N BigDecimal falsch formatiert bei Locale.GERMANY Allgemeine Java-Themen 3
S String to BigDecimal Allgemeine Java-Themen 6
N BigDecimal.divide Problem Allgemeine Java-Themen 6
N setscale bigdecimal Allgemeine Java-Themen 3
M String to BigDecimal Allgemeine Java-Themen 7
N BigDecimal formatieren Allgemeine Java-Themen 2
André Uhres BigDecimal in HashSet eingefügt, aber nicht in TreeSet Allgemeine Java-Themen 2
T bigdecimal.pow(0.5) Allgemeine Java-Themen 19
0 Keine clone-Methode für BigDecimal und BigInteger? Allgemeine Java-Themen 3
N MathContext rundet falsch? Allgemeine Java-Themen 1
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
D falsche Zeile aus JTable in MySQL gelöscht Allgemeine Java-Themen 6
K Input/Output JUnit: Log Inhalte, falsche Assertion Allgemeine Java-Themen 2
S Ins Falsche Forum gepostet... Allgemeine Java-Themen 0
P BatchUpdateException für falsche Datumsformate anstatt SQLServerException Allgemeine Java-Themen 2
H2SO3- SCJP Chapter 3 Frage 10. Falsche Antwort? Allgemeine Java-Themen 15
P Falsche Ausgabe Allgemeine Java-Themen 5
E Falsche Ergebnisse bei PQ-Formel Berechnung Allgemeine Java-Themen 12
M rxtx OutputStream sendet falsche werte Allgemeine Java-Themen 3
Z new Date() liefert falsche Uhrzeit Allgemeine Java-Themen 12
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
I Teilweise falsche Darstellung jap. Zeichen im JEditorPane mit RTFEditorKit aus RTF-Datei Allgemeine Java-Themen 5
D falsche Annahme nach korrekter Auswertung (if, boolean) Allgemeine Java-Themen 2
J Calendar gibt falsche Wochenanzahl zurück Allgemeine Java-Themen 3
D Problem mit java.util.scanner: Falsche Ergebnisse Allgemeine Java-Themen 4
hdi Logikfehler/falsche Methode? - Grösse von Dateien/Festplatte Allgemeine Java-Themen 14
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
G Denksport: Der falsche Barren Allgemeine Java-Themen 9
W PrintWriter (PrintStream) sendet falsche Werte Allgemeine Java-Themen 18
oliver1974 "(.) should be accessed in a static way" Falsche W Allgemeine Java-Themen 6
N URLClassLoader läd falsche Klasse Allgemeine Java-Themen 3
G ständig Iterator über Kollektion --> falsche Reihenfolge? Allgemeine Java-Themen 2
H falsche ausgabe Allgemeine Java-Themen 15
S Decimalformat gibt falsche Werte aus Allgemeine Java-Themen 3
A Falsche Werte bei .readDouble() Allgemeine Java-Themen 2
M problem mit packages - falsche einstellungen? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben