Pobranie double sformatowanego do określonej ilości miejsc po przecinku

1

Witam. W swoim programie posiadam tabelę JTable do której w kilku kolumnach wpisywane są liczby double, które ograniczyłem do 2 miejsc po przecinku tworząc metodę ustawFormatowanie() na podstawie tego wątku:
https://4programmers.net/Forum/Java/200875-zmienna_double_i_miejsca_po_przecinku
aktualnie linijka odpowiadająca za dodawanie wiersza wygląda tak:

model.addRow(new Object[] {nazwaUrzadzenia, liczbaUrzadzen, ustawFormatowanie().format(mocUrzadzenia), ustawFormatowanie().format(dobowyCzas), ustawFormatowanie().format(zuzycieDzienne), ustawFormatowanie().format(zuzycieMiesieczne), ustawFormatowanie().format(kosztMiesieczny)});

jednakże w dalszej części programu chcę odczytać wpisane wartości z tabeli i czynię to za pomocą

			for(int j = 2; j < model.getColumnCount(); j++)			
				tablicaSum[j-2]+=(double) model.getValueAt(i, j);

i tu pojawia się problem, a mianowicie

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double

W jaki sposób pobrać tak sformatowaną liczbę lub w jaki inny sposób ją wpisać do tabeli, aby móc ją bezproblemowo pobrać?

1

nie tyle pobrać co przeparsować

        String test = "1.22";
        double doub = Double.parseDouble(test);
1

De Wu, poszedłem za Twoim linkiem i rozumiem, że użyłeś DecimalFormat. To dobrze, bo elegancko byłoby przewidzieć obsługę separatora dziesiętnego. W takim razie przy transformacji powrotnej używaj tego samego obiektu.

double d = ustawFormatowanie().parse(liczbaJakoTekst).doubleValue()

Czyli przeglądasz dokumentację DecimalFormat, zwracając uwagę, że na dole masz jeszcze funkcje odziedziczone z klasy NumberFormat.

Double (+ String.format), jak podpowiedział Christosc, jest ok, jeżeli nie troszczysz się o ładne formatowanie (separator dziesiętny itp.).

1 użytkowników online, w tym zalogowanych: 0, gości: 1