konto usunięte

Temat: Problem z . i , :D

Witam,
chciałbym się spytać czy mieliscie kiedyś taki problem z .NET mam Viste i w ustawieniach regionalnych po intalacji symbol dzisiętny jest ustawiony na "," Stronki w SilverLight nie wyświetlają sie poprawie albo w cale przykład
http://www.share-this.net/FreeAgency/FreeAgency.aspx
ta stronka działą tylko jak jest symbol dzisiętny ustawiony na "."
Przestawialem z , na . i działą robiłem testy

String test1 = "0.123456";
float.Parse(test1);
String test2 = "0,123456";
float.Parse(test2);

i zalezności jak mam ustawiony symbol dzisiętny wyskakuje bład w przy parsowaniu.

konto usunięte

Temat: Problem z . i , :D

No ale z tego co rozumiem to wina tworzącego tę stronę, że nie uwzględnił innych systemów zapisu liczb. Podobnie będzie z datami. Jeśli ktoś nie uwzględnia, że są inne systemy zapisu dat niż panujący w USA: MM/dd/yyyy to daty takie jak 02/02/2008 będą interpretowane źle (pomijając już fakt, że w PL oddziela się elementy znakami '-')

Aby mieć większe pojęcie jak różnią się kraje w kwestii ustawień regionalnych warto przeczytać: http://www.moserware.com/2008/02/does-your-code-pass-t...
Maciej Czerwiakowski

Maciej Czerwiakowski Change Manager @ HP
/ MCPD : Enterprise
Application Devel...

Temat: Problem z . i , :D

Funkcje konwersji, parsowania, etc. korzystają z interfejsu IFormatProvider, który udostępnia wszystkie niezbędne informacje i aktualnych ustawieniach językowo-kulturowych, tj. format daty, separator w liczbach itp.
Przejrzyj helpa i jakieś tutoriale, to na pewno rozjaśni Ci sprawę. Ja osobiście nigdy z tego nie korzystałem, więc nie mam gotowego przykładu żeby rzucić.

konto usunięte

Temat: Problem z . i , :D

Czyli jak ktoś piszę projekt np program rachunkowy który tylko uwzględnia "." to w takich krajach jak nasz kochany nie będzie dział prawidłowo.

konto usunięte

Temat: Problem z . i , :D

Nie będzie działał. No, ale to już kwestia odpowiedniego działu testów, aby wyłapał niepoprawne działanie przy innych ustawieniach regionalnych. :)
Maciej Czerwiakowski

Maciej Czerwiakowski Change Manager @ HP
/ MCPD : Enterprise
Application Devel...

Temat: Problem z . i , :D

Raczej jest to kwestia nieświadomości istnienia mechanizmu globalizacji. Generalnie .NET pozwala zrobić uniwersalne programy, które będą działać przy każdych ustawieniach regionalnych. Trzeba tylko umieć korzystać z mechanizmu globalizacji.

konto usunięte

Temat: Problem z . i , :D

Zgadzam się, ale jeżeli programista nie jest świadomy (a niestety wydaje mi się, że sporo osób nie zwraca na to uwagi - sam osobiście zdziwiłem się jak wiele elementów trzeba brać pod uwagę czytając 'Turkey test') to testy powinny to wyłapać.
Maciej Czerwiakowski

Maciej Czerwiakowski Change Manager @ HP
/ MCPD : Enterprise
Application Devel...

Temat: Problem z . i , :D

Owszem powinny, ale przy dobrze zaprojektowanym programie (kiedy globalizacja jest wzięta pod uwagę) testy wielokulturowości są potrzebne tylko z formalnego punktu widzenia, bo mechanizm jest sprawdzony i dobrze zaimplementowany nie generuje błędów :)Maciej Czerwiakowski edytował(a) ten post dnia 19.05.08 o godzinie 16:06

konto usunięte

Temat: Problem z . i , :D

Maciej Czerwiakowski:
Owszem powinny, ale przy dobrze zaprojektowanym programie (kiedy globalizacja jest wzięta pod uwagę) testy wielokulturowości są potrzebne tylko z formalnego punktu widzenia, bo mechanizm jest sprawdzony i dobrze zaimplementowany nie generuje błędów :)Maciej Czerwiakowski edytował(a) ten post dnia 19.05.08 o godzinie 16:06
Dzięki za info poczytam doszkole się.

konto usunięte

Temat: Problem z . i , :D

Maciej Czerwiakowski:
Owszem powinny, ale przy dobrze zaprojektowanym programie (kiedy globalizacja jest wzięta pod uwagę) testy wielokulturowości są potrzebne tylko z formalnego punktu widzenia, bo mechanizm jest sprawdzony i dobrze zaimplementowany nie generuje błędów :)
W zasadzie globalizacja w .NET jest jednym z lepiej zrobionych elementow, i nie trzeba pod nia 'projektowac'.
Oczywiscie calkowicie ignorowac jej tez nie wolno, ale jest to w miare bezbolesne (na potrzeby tej dyskusji calkowicie i swiadomie zignoruje problemy lokalizacji, w tym hardcode'owane stringi).
Ogolnie zasada jest taka:
Jesli wyswietlasz cos userowi w trakcie dzialania programu to domyslnie wszystko jest formatowane kultura powiazana w watkiem UI, ktory to znow, domyslnie ma wartosc domyslna dla systemu operacyjnego (taka jak jezyk systemu, przy zalozeniu ze nie masz MUI) + zmiany wprowadzone w Panelu Sterowania (ktore mozna zignorowac).
Takie domyslne zachowanie jest porzadane bo zachowuje spojnosc z reszta systemu.
Z drugiej strony przy zapisywaniu/odczytywaniu danych logiczne jest ze trzeba przyjac neutralny format i to jest jeden z niewielu przypadkow gdzie trzeba o globalizacji pomyslec.
Dlatego przy zapisywaniu/odczytywaniu danych proponuje (z reszta nie tylko ja, zeby nie bylo ze sie za autorytet stawiam) stosowanie CultureInfo.InvariantCulture jako IFormatProvider przy ToString i przy Parse/TryParse.
Pozwoli to uniknac problemow jakie ma Grzegorz.

Co do zasobow tematycznych: Stricte o globalizacji lokalizacji internacjonalizacji etc, jest ksiazka http://www.amazon.com/NET-Internationalization-Develop...
Problematyka jest tez dobrze, ale duzo bardziej pobieznie wytlumaczona w http://www.amazon.com/CLR-via-Second-Pro-Developer/dp/...

Hope that helpsKrzysztof K. edytował(a) ten post dnia 24.05.08 o godzinie 19:26

konto usunięte

Temat: Problem z . i , :D

Dzięki za odpowiedz zapewne zgłębie tą wiedze

Następna dyskusja:

problem z serializacja cdata




Wyślij zaproszenie do