ich arbeite auf einer Währungsumrechner Android-Anwendung, in dem ich ein Doppelzimmer mit einem anderen doppelten Wert zu multiplizieren, versuchen aber nach Multiplikation mir nicht dem richtigen Wert zu bekommen. Ich habe auch versucht BigDecimal und immer noch nicht die richtige Menge. Was wäre der beste Weg, um Doppel zu multiplizieren?wie multiplizieren zwei Doppeln
second_amount = Double.parseDouble(second.getText().toString());
first_amount = Double.parseDouble(first.getText().toString());
result = first_amount * second_amount;
second.setText("" + df.format(result));
nach
BigDecimal mit second_amount = Double.parseDouble();
bdf = new BigDecimal(second.getText().toString());
//first_amount = Double.parseDouble(first.getText().toString());
bds = new BigDecimal(second.getText().toString());
BigDecimal bdr = bdf.multiply(bds);
//result = first_amount * second_amount;
second.setText("" + bdr);
Sie erhalten die richtigen Doppel. Was Sie nicht verstehen, ist, wie Doppelarbeit funktioniert. Doppel sind nicht unendlich genau und sie speichern keine Dezimalzahlen. Sie speichern Binärzahlen - Potenzen von 2 und 1/2. Ein einfacher Bruch wie .3 wird also nicht genau in einem Doppel gespeichert. –
Was erhalten Sie anstelle des richtigen Wertes? Ich sollte sagen, dass Sie die Multiplikation richtig machen. –
@ OleV.V. Wenn ich 1.9062 mit 100 multipliziere, bekomme ich 1910.00 –