Heim >Java >javaLernprogramm >Wie analysiere ich Doubles mit Komma als Dezimaltrennzeichen in Java korrekt?
So behandeln Sie Kommas als Dezimaltrennzeichen beim Double Parsing
Die Verwendung eines Kommas als Dezimaltrennzeichen kann zu Fehlern bei der Verwendung führen Standardmethode Double.valueOf(). Betrachten Sie den folgenden Code:
String p = "1,234"; Double d = Double.valueOf(p); System.out.println(d);
Dieser Code löst aufgrund des Vorhandenseins des Kommas eine NumberFormatException aus. Um dieses Problem zu lösen, könnte man die Verwendung der Ersetzungstechnik p = p.replaceAll(",", ".") in Betracht ziehen. Es gibt jedoch einen effizienteren und lokalisierteren Ansatz mit der Klasse java.text.NumberFormat.
Lösung mit NumberFormat
Die NumberFormat-Klasse ermöglicht das entsprechende Parsen von Zahlen an bestimmte Gebietsschemaeinstellungen, einschließlich der Handhabung verschiedener Dezimaltrennzeichen. So verwenden Sie es, um ein Double mit einem Komma-Trennzeichen zu analysieren:
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue();
In diesem Code erstellt NumberFormat.getInstance(Locale.FRANCE) eine Instanz der NumberFormat-Klasse mit dem französischen Gebietsschema, wo das Komma steht wird üblicherweise als Dezimaltrennzeichen verwendet. Die format.parse()-Methode analysiert dann die Zeichenfolge in ein Number-Objekt, das mit der doubleValue()-Methode in ein Double umgewandelt werden kann.
Mehrsprachige Unterstützung
Für mehrsprachige Anwendungen kann die Methode Locale.getDefault() verwendet werden, um das Standardgebietsschema des Benutzers abzurufen System:
NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
Dieser Ansatz ermöglicht es dem Code, sich an das bevorzugte Gebietsschema des Benutzers anzupassen und Dezimaltrennzeichen entsprechend zu verarbeiten.
Das obige ist der detaillierte Inhalt vonWie analysiere ich Doubles mit Komma als Dezimaltrennzeichen in Java korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!