Loading...
nstanchev98 avatar nstanchev98 2 Точки

Помощ за задача Sumator

Здравейте, понеже съм нов и сега започвам да се занимавам с програмиране не са ми ясни няколко неща от задачата, където имаме да създадем суматор.

 

1. Каква е разликата между decimal.Parse и int.Parse? Мислех си, че int е за цели числа, а decimal за дробни. Обаче щом пусна програмата и въведа числото (примерно 2,22) програмата крашва. Което значи, че съм разбрал нещо грешно.

 

2. В решението на задачата е дадено следното: За какво служи this? Направих програмата без него и върви без проблем. .Text до колкото разбирам служи, да се означи, че променливата ще е текстът в textBox1, нали?

var sum1 = decimal.Parse(this.textBox1.Text);

 

3. Защо слагаме .ToString на sum? Какво точно казвама да изпълни програмата. Първоначално мислех, че ако textBoxSum.Text = sum е достатъчно, но ми дава грешка. Какво е значението на ToString() в следния случай:

textBoxSum.Text = sum.ToString();

 

 

2
Programming Basics 12/06/2016 18:51:02
Osama avatar Osama 7 Точки

Пробвай да въведеш дробното число с точка, а не запетая.

0
nstanchev98 avatar nstanchev98 2 Точки

С точка го въвеждам.

0
12/06/2016 19:11:25
JeLezen avatar JeLezen 0 Точки

С точка го бях въвеждал,но ми даваше грешка и пробвах със запетая и се получи.

0
Osama avatar Osama 7 Точки

Оправи си кода да е така "Double.Parse"

 

var sum1 = Double.Parse(this.textBox1.Text);

0
12/06/2016 19:07:19
Le0ne avatar Le0ne 16 Точки

1. Decimal - 128 битово число със запетая 
 Integer - цяло число без запетая
Проблема в твоя случай е, че пишеш числото със запетая вместо с точка явно. 
Тоест трябва да използваш - 2.2, а не 2,2
2. Малко повече за this на английски - https://msdn.microsoft.com/en-us/library/dk1507sz.aspx Има и примери как се ползва. Да.
3. ToString() прехвърля данните в един обект от текущия към string тип. 

0
Losko avatar Losko 69 Точки

Здравей. 
Като цяло си прав, int е цяло 32 битово число а decimal e 128 битово число с плаваща запетая. 
Когато пишеш числа с плаваща запетая трябва да ги съобразиш със локалните настройки на машината на която работи кода.
Освен ако изрично не променяш "културата" на програмата която пишеш.

В България използваме " , " докато в Щатите " . ".

П.С. До колкото си спомням дори в програма като "Autocad" е имало такъв бъг и когато въведеш грешния символ програмата крашва...

0
12/06/2016 19:22:23
dimitur_botev avatar dimitur_botev 112 Точки

1. Когато работиш със плаваща запетая, винаги едно на ум за културата. Най-отгоре на кода добави using System.Globalization  и когато парсваш слоби просто decimal.Parse(this.textBox1.Text,CultureInfo.InvariantCulture) и нямаш проблеми

2.this е ключова дума  който  оказва точният обек с който се извършва дадено действие. В случаят казва вземи Тext property от ТОЗИ обект textBox1.  Има цял курс по ООП където ще се занимаваш с това, за сега го пропусни.

3.Слагаме ToString() понеже sum  връща десимал, а Text пропъртито ти очаква да приема стринг, и за това крашва, както и за това слагаме стринг. Както Наков в една лекция беше казал - стрингосваме го :D

1
12/06/2016 20:50:37
Woofles avatar Woofles 7 Точки

За Int си прав че е за целочислени данни.
Decimal от друга страна, както други вече посочиха, е за дробни числа с плаваща(десетична) запетая, НО за разлика от другите два типа със запетая (Float и Double) тук числото се съхранява по начин при който няма загуба на данни (принципно). В другите два типа често ще имаш една грешка, която макар и много малка, при проверка за равенство може да е критична.

Parse от друга страна използваш за да преобразуваш съдържанието в скобите (съдържанието на клетка Text от textBox1) до формата зададен преди Parse - decimal, тъй като процесът не се извършва автоматично в C#.

1
12/06/2016 21:30:48
koushalieva avatar koushalieva 3 Точки

На мен ми дава тази грешка, къде бъркам:

Error    CS0103    The name 'textBoxSum' does not exist in the current context    Sumator    c:\users\user\documents\visual studio 2015\Projects\Sumator1\Sumator\Form1.cs    30    Active

0
13/06/2016 10:13:32
kami_1197 avatar kami_1197 2 Точки

На мен ми дава същата грешка. Какво да направя?

0
koushalieva avatar koushalieva 3 Точки

klikni vyrhu tretiq Textbox i ot svojstvoto Text v dqsnoto menu mu daj ime TextBoxSum

 

 

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.