Prosty kalkulator – niemożność dodania licz zmiennoprzecinkowych

Odpowiedz Nowy wątek
2017-11-17 19:14
0

Mam napisany krótki program kalkulatora. Ogólnie działa, ale istnieje w nim problem, który polega na tym, że:
A. Nie mogę dodać liczby zmiennoprzecinkowej do siebie np 4.5+5 lub 4.5 +5.6, wrzuca exception, chodź tym zmiennych to double?
B. Nie mogę stworzyć wartości 0.1, po kliknięciu 0 > kropka znika pierwsza wartość
Kod:
http://wklejto.pl/310720
http://www.wklejto.pl/310722

Proszę o wskazówki

edytowany 1x, ostatnio: furious programming, 2017-11-17 21:00

Pozostało 580 znaków

2017-11-17 20:05

No bo u nas w Polsze separatorem jest przecinek, więc jak chcesz używać zapisu z kropką to do metody Double.Parse musisz przekazać obiekt IFormatProvider, który informuje jaki format ma mieć wejściowy ciąg, jak tego nie będzie to wywala błąd, więc musisz zastosować taki kod

System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";
Double.Parse("4.5", nfi);

Co do pkt. B to nie wiem o co chodzi, napisz to tak, żeby szło to zrozumieć

@viamarimar wcześniej zapomniałem w tym kodzie przekazać ten utworzony obiekt do tej metody Parse. Teraz jest poprawione.

edytowany 4x, ostatnio: furious programming, 2017-11-17 21:00

Pozostało 580 znaków

2017-11-17 20:56
0

Ewentualnie

string input = "555.56456";
double val1 = Convert.ToDouble(input , CultureInfo.InvariantCulture);
Console.WriteLine(val1);

o CultureInfo
https://msdn.microsoft.com/en[...]brary/4c5zdc6a(v=vs.100).aspx
http://blogprogramisty.net/cultureinfo-w-c/

edytowany 6x, ostatnio: WeiXiao, 2017-11-17 21:06

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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