java.lang.NumberFormatException: Invalid float: "٠"
So, ich bin immer ein crash java.lang.NumberFormatException: Invalid float: "٠"
weil es aus irgendeinem Grund auf ägyptischen Geräte das dezimal-Trennzeichen ٠ statt .
Wie kann ich dieses Problem lösen? Es kann mit Benutzer mit , (Komma) als Dezimaltrennzeichen, aber dieses komische dot verursacht einen Absturz. Hier der code, das ist das problem:
DecimalFormat oneDigit = new DecimalFormat("#.#");
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
oneDigit.setDecimalFormatSymbols(dfs);
sevenDaysAverage = Float.valueOf(oneDigit.format(sevenDaysAverage)); //exception here
Mein Ziel ist es, eine Zahl formatiert mit einer einzigen Dezimalzahl getrennt durch einen Punkt, denn die app ist in Englisch und das ist, wie die Zahl dargestellt werden soll.
- Ich bin mir nicht sicher, dass die Dezimaltrennzeichen. Wenn ich das Google sehe ich, dass es die Arabische Ziffer null.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dann konvertieren
f1
zuString
.Die Sie nutzen sollten NumberFormat Klasse.Es ermöglicht Ihnen, zu analysieren Strings in einen lokalisierbaren Anzahl. Dies würde verhindern, dass Sie von der Verkleidung Situationen, in denen das dezimal-Trennzeichen ist
,
Zum Beispiel im Fall der deutschen, wäre es:Das ist eine Arabische Null nicht ein dezimal-Punkt,
Wenn Sie möchten, dass die Gruppierung separator ein Punkt zu sein, können Sie ein Gebietsschema Europa:
Alternativ können Sie die
DecimalFormatSymbols
Klasse zu ändern, die Symbole, die erscheinen in der formatierten zahlen, die durch die format-Methode. Diese Symbole sind das Dezimalzeichen, das Gruppierungstrennzeichen, das minus-Zeichen, und das Prozent-Zeichen, unter anderen:Bevor Sie den Wert "٠" es passieren BigDecimal-Objekt und verwenden Sie den zurückgegebenen Wert.