Loading...
MartinDekov avatar MartinDekov -1 Точки

cs0266 error?

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = Convert.ToDouble(Console.ReadLine());

        }
    }
}

Във задача трябва променивата ми х да е Double, но ми изписва този Error потърсих в интернет обаче съм още noob и не схванах точно обяснението.Със Convert.ToInt32 не ми изписва този error.Помощ ? Правя миналите тестове за да се подготвя, евентуално и аз ще стана пълноправен член на SoftUni!

Тагове:
-1
Programming Basics
Thenis avatar Thenis 219 Точки
Best Answer

Трябва да ти е:

 double x = Convert.ToDouble(Console.ReadLine());

И по - добре изполвай

 double x = double.Parse(Console.ReadLine());

По-бърз е от Convert и ти хвърля exception ако подадеш грешен вход. И като цяло метода Parse() работи по-добре когато превръщаш string в число.

 

2
24/04/2016 15:32:52
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Error    CS0266    Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)    Test    C:\Users\Amphibia\Documents\Visual Studio 2015\Projects\Test\Test\Program.cs    9

Това, което ти казва това изречение, е, че няма как да присвоиш double стойност на променлива от тип int или на още по-непретенциозен език, няма как цялочислена променлива да пази информация за число с десетична част. Оттук възможностите са две:

 

  1. Преобразуваш стойността в int по следния начин:

     int x = (int)Convert.ToDouble(Console.ReadLine());

    Преведено на български език, това ще рече, че се отказваш от десетичната част на числото.  Известно е още под наименованието "explicit casting". За твоя случай това не ти върши работа, понеже на теб ти трябва частта след десетичната запетая.
     

  2. Правиш типа на променливата x да е double, както е показал колегата Thenis. Това, освен че ще укроти грешката, е съгласувано, с дейността, която искаш да изпълнява твоята програма. 

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