Konvertieren von Zeichenfolgen (die Dezimalzahl) zu lange
Habe ich googelte ein bisschen herum, aber nicht finden konnten, Beispiele, eine Lösung zu finden. Hier ist mein problem:
String s = "100.000";
long l = Long.parseLong(s);
Der 2. Zeile code, die versucht, die zum analysieren der Zeichenfolge " s " in eine lange wirft ein NumberFormatException.
Gibt es eine Möglichkeit, um dieses? das problem ist die Zeichenfolge, die die dezimale Zahl ist eigentlich die Zeit in Millisekunden, so kann ich nicht casten auf int, weil ich verlieren Präzision.
was das dot steht für? ist es Trennzeichen zwischen 0 oder dezimal-Zeichen?
InformationsquelleAutor temelm | 2012-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie ein BigDecimal zu behandeln, das double-parsing (ohne das Risiko von Präzisions-Verlust, dass Sie möglicherweise mit
Double.parseDouble()
):InformationsquelleAutor assylias
da ich nicht weiß, ist Ihren 100.000 entspricht 100 oder 100 000
ich denke die sicherste Lösung, die kann ich dir empfehlen:
InformationsquelleAutor user902383
'lange' ist ein integer-Typ, so dass der String geparst wird abgelehnt wegen dem Komma. Auswahl geeigneter Art helfen können, wie ein double.
Ja, ich erkannte etwas spät, daß es sich um Europäische notation. Ich kann löschen Sie einfach diese Antwort ist, wie es scheint, haben andere bedeckt die gesamte Bandbreite guter Lösungen möglich.
InformationsquelleAutor Kenogu Labz
Nur entfernen Sie alle spaceholders für die Tausende, die dot...
InformationsquelleAutor Thomas
Sollten Sie NumberFormat verwenden, um eine Analyse der Werte
InformationsquelleAutor psabbate
Können wir den regulären Ausdruck verwenden, um schneiden Sie die dezimalen Teil. Dann nutzen Sie parseLong
Lange.parseLong( Daten.replaceAll("\..*", ""));
InformationsquelleAutor jean joseph
Wenn Sie nicht wollen, zu verlieren presision dann sollten Sie
multiplication
Ausgabe:
InformationsquelleAutor Amit Deshpande