problem z float.parse()

0

Witam. Piszę program na zaliczenie, jego głównym zadaniem było wczytanie z pliku tekstowego wartości x i y punktów i przerysowanie ich na układ współrzędnych. Problem z tym że na różnych komputerach otrzymuje różne wyniki.
Mając w pliku wartości 0,11:0,47 float.parse() odczytuje je jako 11 i 47 zaś na komputerze znajomego jako 0,11 i 0,47. Wartości nie są nigdzie mnożone ani dzielone, kod a nawet projekt te same, więc dziwi mnie ta rozbieżność wyników. Jakieś sugestie?

Próbowałem także z double

MessageBox.Show(wynik[i, 0]);
double dX = Convert.ToDouble(wynik[i, 0]);
MessageBox.Show(Convert.ToString(dX));

W pierwszym wypadku wyświetla 0,11 w drugim zaś 11

0

Zapewne na obu komputerach są różne systemy operacyjne, gdzie w jednym ',' jest interpretowany jako część liczby, a w drugim nie. W metodzie Parse można chyba podać IFormatProvider, który zagwarantuje traktowanie string'a jako liczby w podanym przez Ciebie formacie.

0

Dziękuje na naprowadzenie mnie. Sprawdziłem na moim laptopie i wynik był taki sam jak u kolegi - 0,11 i 0,47. Jego komputer oraz mój laptop mają wersję polską Windows'a, komputer na którym pisze program działa pod wersją angielską z polską nakładką językową.

Poradziłem sobie przy pomocy
CultureInfo culture = new CultureInfo("pl-PL"); Dziękuje za pomoc

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