Loading...
dddinkobakalov avatar dddinkobakalov 22 Точки

проблем с грешка в програмата при задача за конвертор за мерни единици

Здравейте,

в една от задачите за конвектор на мерни единици ми дава грешка при запис на умножение или деление на число. Долу давам пример и каква грешка ми изписва. Нямам проблем с умножението, в предна задача зa бонуса смятах нещо подобно и излизаше, но беше num * 10 / 100.

else if (firstMetric == "in")
            {
                num = num * 39.3700787;
            }

Error    CS0019    Operator '*' cannot be applied to operands of type 'decimal' and 'double'    

Извинявам се предварително за може би елементарния въпрос, но не знам как да си направя настройките.
 

Тагове:
0
Programming Basics
TanyaZheleva avatar TanyaZheleva 354 Точки

Погледни променливите ти от какъв тип са. Използвай или double или decimal, но не и двете, защото точно там явно гърми.

0
dddinkobakalov avatar dddinkobakalov 22 Точки

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

0
Plamen27 avatar Plamen27 599 Точки

Дай целия код да видим. Поствай в pastebin.

0
dddinkobakalov avatar dddinkobakalov 22 Точки

Ами за съжаление пробвах много варианти и може би това е най-доброто което измислих, защото имам 31/100. Като цяло знам какво трябва да направя, но не мога да го реализирам, някъде не ми достигат нещата, а не искам да гледам готов вариант и просто да го препиша.

http://pastebin.com/6r9YXjrJ

0
TanyaZheleva avatar TanyaZheleva 354 Точки

http://pastebin.com/YugtBbHH

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

0
dddinkobakalov avatar dddinkobakalov 22 Точки

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

1
Todor_ns avatar Todor_ns 0 Точки

Дай да видим целия код .

1
dddinkobakalov avatar dddinkobakalov 22 Точки

http://pastebin.com/6r9YXjrJ

0
gnikolov avatar gnikolov 4 Точки

В тази задача всички променливи за числа съм ги задал да са тип "double" и няма проблем.. За да може да стане по-ясно къде би могла да е грешката, може да копираш целия код на написаната от теб задача.

0
dddinkobakalov avatar dddinkobakalov 22 Точки

http://pastebin.com/6r9YXjrJ

0
gnikolov avatar gnikolov 4 Точки

Пробвай, например вместо  

                num = num * 621371192 / 1000000000000;

да напишеш

num = num / 0.000621371192;  т.е вместо да умножаваш нещо по едно голямо число и след тов ада го делиш на друго голямо число, просто си направи делението предварително.

Твоя, код при мене работи, даже пробвах firstMetric да ми е in и си смята.

А във Judge системата, като го пуснеш за проверка дава ли ти грешка ? 

 

0
28/06/2016 21:54:54
dddinkobakalov avatar dddinkobakalov 22 Точки

да, ще опитам, мисля че с насоките ще стане  и ще успея да я довърша

0
Plamen27 avatar Plamen27 599 Точки

Ето ти фикса:

http://pastebin.com/dVibW6YW

Cори малко кълцах и оптимизирах. Основната ти грешка, че понеже смяташ в decimal числата ги изписваше обикновено, а те се изписват примерно 100m - слага се една буквичка m накрая. Изнесох мерните съотношения в променливи, така е по-надеждно и по-малко код. Ако има нещо питай.

0
dddinkobakalov avatar dddinkobakalov 22 Точки

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

0
Plamen27 avatar Plamen27 599 Точки

Няма проблем, успех. Решението е проверено работи.

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