ich richtig bin versucht zu konvertieren (Parsing) eine Zeichenfolge in Java zu schweben, denn die Zahl 5755,1115, Beispiel:Zeichenfolge konvertieren zu schweben - java vs Javascript
float fl = new BigDecimal("5755.1115").floatValue();
float fl = (float)5755.1115d;
Das Problem ist, dass es immer 5755,1113 druckt. Es scheint, es verliert Präzision (Ich habe auch versucht MathcContext (10) zum Beispiel verwenden, aber hat nicht funktioniert)
Aber wenn ich versuche, das in JavaScript scheint es funktioniert:
var fl = parseFloat('5755.1115');
var str = "" + fl.toPrecision(8);
console.log("number: " + str);
Sie gibt die Anzahl korrekt, auch wenn ich die Funktion toPrecision() nicht verwende.
Kann mir jemand erklären, wie ich das auch in Java erreichen kann?
EDIT: Mein Fehler, ich habe vergessen anzugeben, dass ich nicht doppelt verwenden möchte, weil ich die Datenübertragung auf Minimum halten muss.
Warum vergleichen Sie Java und JavaScript? – Paul
Scheint ziemlich offensichtlich, dass '5755.1113' der nächste' float' zu '5755.1115' ist. Sie können stattdessen ein "Doppel" verwenden, wenn es nicht präzise genug ist. – khelwood
Ich denke, es ist weil JavaScript nur doppelt und 5755.1115 hat zu viel Präzision für einen Float. – neuhaus