Datentypen Kann ich bei double Komma statt Punkt eingeben?

popelheinixd

Aktives Mitglied
Kann ich es irgendwie ändern, dass ich für mein Programm bei einem double Wert ein Komma eingeben kann, statt die amerikanische Schreibweise des Punktes?
 
Ja,. Dazu musst du zum parsen statt Double.parseDouble() eine Instanz von DecimalFormat verwenden. Das DecimalFormat akzeptiert eine Zahl im "landestypischen" Format. Hier ein Beispiel:
Java:
package textoperations;
import java.text.DecimalFormat;
public class NumberParsing {
    public static void main(String[] args) throws Exception{
        DecimalFormat df = new DecimalFormat();
        System.out.println(df.parse("1,23").doubleValue()*2.0);
    }
}
 
Ich kenne ja die Anwendungsproblemdomäne nicht, aber
JFormattedTextField
sollte weiterhelfen:
Java:
amountField = new JFormattedTextField(42.0);

- https://docs.oracle.com/javase/7/do...ld.html#JFormattedTextField(java.lang.Object)

Java:
        JFrame frame = new JFrame("Test");
        JPanel panel = new JPanel(new GridLayout(1, 2));
        JFormattedTextField field = new JFormattedTextField(0.0);
        JLabel label = new JLabel("Platzhalter");
        panel.add(field);
        panel.add(label);
        frame.add(panel);

        field.addPropertyChangeListener("value", (PropertyChangeEvent evt) -> {
            label.setText(String.valueOf((Double) evt.getNewValue()));
        });

        frame.setSize(400, 60);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);

String.valueOf((Double) evt.getNewValue()) einfach nur, damit mir glaubst, dass da immer ein Double zurückkommt 😉 .
 
Zuletzt bearbeitet von einem Moderator:
Wieso nicht:
Java:
NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN);
double num = nf.parse(myString).doubleValue();
Sonst ist der nächste Fehler bei den 1000er Trennzeichen
 
Jeea, bin noch da, also:
Java:
// Bitte ein try catch drummachen
double d = Double.parseDouble(jTextField1.getText().replace(',', '.'));
// Bitte ein try catch drummachen

// Ist ergebnis immer double?
jTextField3.setText(Double.toString(ergebnis).replace('.', ','));

Vorm parsen, nachem parsen... Aber das versteht sich doch 😀
 

Zurück
Oben