Heim >Java >javaLernprogramm >Wie analysiere ich Doubles mit Komma als Dezimaltrennzeichen in Java korrekt?

Wie analysiere ich Doubles mit Komma als Dezimaltrennzeichen in Java korrekt?

DDD
DDDOriginal
2024-12-12 22:07:16635Durchsuche

How to Correctly Parse Doubles with Comma as Decimal Separator in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn