Nie umiem dokonać konwersji typu zmiennej.

0

Witam, potrzebuję przekonwenterować typ zmiennej z string (chyba taki domyślny typ ma listbox) na decimala aby wykonać mnożenie na zmiennych. Tylko, że nie potrafię. Udało mi się spłodzić coś takiego : decimal b = listBox1.SelectedItem = Convert.ToDecimal; Program ma na celu doliczanie podatku wyrażonego w procentach do wyboru jest kilka z listboxa po czym wyświetlić to w polu na dole. Co z takim fantem zrobić ?

Zdjęcia : https://static.4programmers.net/uploads/attachment/5a/5a374d21e9f0f.png
https://static.4programmers.net/uploads/attachment/5a/5a374d9e679c4.png

0

W treści błędu masz podpowiedź ("Czy chcesz wywołać metodę?"). Powinno to wyglądać tak:

decimal b = Convert.ToDecimal(listBox1.SelectedItem);

Przy czym jeżeli do tej listy dodasz coś co się nie konwertuje na decimal to otrzymasz wyjątek. Poczytaj o decimal.TryParse.

2

ToDecimal() to metoda w klasie Convert która zwraca decimal i jako argument przyjmuje string.

Czyli Twój kod powinien wyglądać tak

decimal someNumber = Convert.ToDecimal(listBox1.SelectedItem.Text);

albo

decimal someNumber = decimal.Parse(listBox1.SelectedItem.Text);

Jest jeszcze możliwość zabezpieczenia się przed wyjątkami (jeżeli np. spróbujesz przekonwertować literę A na liczbę):

decimal someNumber;

if(!decimal.TryParse(listBox1.SelectedItem.Text, out someNumber)
{
	// Wyświetl komunikat o błędzie.
}

Poza tym używaj sensownych nazw zmiennych. Jeżeli komuś przyjdzie analiza Twojego kodu to nie będzie mu się chciało odkodowywać nazw takich jak d, y czy mojaZmienna2.

0

Że tak powiem bywało lepiej, program się kompiluję lecz wywala błąd przy próbie obliczenia. screenshot-20171218150403.png

0

Arykuły typu jak zacząć naukę programowania albo coś. Brakuje Tobie podstaw podstaw podstaw.

0

Dlatego że kolega źle Ci podpowiedział. SelectedItem to nie string więc albo musisz użyć

listBox1.SelectedItem.Text;

albo

listBox1.SelectedItem.ToString();
0

Jestem prostytutka debilem. @dexiu miał rację wywalało wyjątek bo użyłem kropki zamiast przecinka. Zapisałem 0.23 zamiast 0,23 i wywalało błąd bo to nie liczba :)

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