Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Prawidłowy odczyt liczb dla niektórych lokalizacji



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Java
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
mallorn



Dołączył: 22 Cze 2015
Posty: 4

PostWysłany: Nie Sty 24, 2016 1:26 am  OP    Temat postu: Prawidłowy odczyt liczb dla niektórych lokalizacji Odpowiedz z cytatem Pisownia

Robię właśnie pracę domową i mam problem z prawidłowym odczytem liczb dla NIEKTÓRYCH lokalizacji (akurat znalazłem na pl_PL):

Przerabiam sobie każdą odczytaną z pliku/ów linię do
Kod:
ArrayList<String> line

żeby "obrobić" ArrayList wg lokali zapisanych w pierwszym "słowie" wyżej wspomnianego pliku
Kod:
       String lokalizacja = line.get(0); //PIERWSZE "SŁOWO" LINIJKI PLIKU wg którego ma być parsowanie
        Locale lineLocale = new Locale(lokalizacja); //lokalizacja w linii - do odczytu cen
        NumberFormat nf = NumberFormat.getInstance(lineLocale);
      
        try {
            cena = nf.parse(line.get(5)).floatValue();
        } catch (ParseException e) {
            e.printStackTrace(); //cena w złym formacie
        }


Niestety dla linii pl_PL wartość "4000,10" jest źle parsowana - dostaję "400010.0"
dla lokali "pl" wszystko jest OK.

i odczytane linijki dają mi błąd:
pl Japonia 08-09-0006 08-10-0006 jezioro 10000.2 PLN
pl_PL Włochy 08-07-0015 08-07-0035 morze 400010.0 PLN

niestety linii i lokalizacji ma być więcej, nie mogę wstawić prostego .replace(",", ".") albo "if" na samo pl_PL, bo podejrzewam że błąd jest ogólny i w testowym pliku wykładowca to wychwyci...

może podpowiecie...?

Tytuł tematu zmieniłem - pisz czytelne tytuły: - Samolot
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
marcin_an



Dołączył: 26 Maj 2005
Posty: 18813

PostWysłany: Pon Sty 25, 2016 4:16 am      Temat postu: Odpowiedz z cytatem Pisownia

A przeczytałeś chociaż, co robi metoda parse? Biorąc pod uwagę, jak zinterpretowałeś ParseException, nie. Przeczytałeś, co robi konstruktor Locale? Sądząc po bezsensownym argumencie do niego przekazanym - też nie. Skoro tobie nie chce się zajrzeć do dokumentacji, to czemu innym zawracasz głowę?

Ponadto w linii 6 masz błąd. Wartości finansowych nigdy nie przechowuje się jako liczb zmiennoprzecinkowych. Do tego jest BigDecimal. W linii 8 wypisujesz backtrace i... co dalej? Nie dałeś całego kodu, ale obstawiam, że jednak coś później robisz, chociaż nie powinieneś.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Java Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.03379 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |