Scientific Notations

D

Duckemai

Fortgeschrittenes Mitglied
6
Hallo zusammen,

ich arbeite derzeit an einer Berechnung mit Scientific Notations. Nutze dafür:

NumberFormat formatter = new DecimalFormat();
formatter = new DecimalFormat("0.#####E+0");

Das Ergebnis gefällt mir aber gar nicht. So ist hiernach die Summe aus 9.99999999 + 9.99999999 = 20.0 !!!!

Ich suche eine Lösung, dass er mir IMMER 5 Nachkommastellen berechnet (also 9er auch nicht rundet) und dann auch immer ein zB E8 schreibt. Gibt es sowas als fertige Methode?

Merci!
 
Was möchtest du denn was rauskommt? 19,999998 auf 5 stellen gerundet gibt eben 20.0.
 
Hallo,

danke für die Antwort.

Das Ergebnis 20 suggeriert, dass hier 10 + 10 addiert wurden.
Damit die Berechnung nicht augenscheinlich falsch wirkt, hätte ich
gerne das Pattern auch so ausgeführt, wie ich es aufgebaut habe.
Also:
18.99999E8
 
Steht E8 nicht für 10^8?...
Scientific Notation
Nur wegen 10+10, ihr verwirrt mich wenn ihr dann mittendrin mit 1999999800 anfangt ;)
Und erst recht mit 1899999000 :D

Wenn ich dich richtig verstehe suchst du eher fix statt round, das schneidet die Zahl einfach an der Stelle die du wünschst ab, ohne zu runden.
Eingebaut dürfte es das nicht geben, da das Ergebnis mathematisch nunmal falsch ist.
Selbst bauen dürfte aber nicht so schwer sein?
 
  • Danke
Reaktionen: Duckemai
Ach ja. Haste recht. 18.99999E8 ist natürlich quatsch.

Selbst zurechtschneiden scheint dann doch am sinnvollsten zu sein.

Danke!
 
Lässt sich denn eine Scientific-Ausgabe verhindern?

Bei:
double_zwischenErg = Double.valueOf(String_eingabe);

macht er mir aus 9999999999 immer "endErg"= 9.999999999E9
 
Duckemai schrieb:
Lässt sich denn eine Scientific-Ausgabe verhindern?

Bei:
double_zwischenErg = Double.valueOf(String_eingabe);

macht er mir aus 9999999999 immer "endErg"= 9.999999999E9
Versuch mal

String.format("%f", double_zwischenErg);
 
  • Danke
Reaktionen: Duckemai
Hey cool. Das ist nicht schlecht.

Wenn ich 9999999999 eingebe, dann macht er mir beim Wandel hin zu
einem Double immer das:

9.999999999E9

Durch Deine Umwandlung bekomme ich nun: "9999999999.000000"

Damit lässt sich arbeiten.

Vielen Dank!
Duckemai
 
Bitte sehr!
 
Zurück
Oben Unten