Софтуерно Инженерство
Loading...
+ Нов въпрос
Ivailo73 avatar Ivailo73 0 Точки

Проблем с Вижуал студио вероятно в настройките

Здравейте!

верятно имам някакъв проблем с настроиките на Вижуъл Студио, тъй като при задача Small Shop

 to Nested Conditional Statements, при примерен вхдо София бира/1,20/ 6бр. ми даав 7,199999999. Дебъгнах и при смятането ми дава за 6 бири по 1,2= 7,19999999, което е невъзвожно като аретметично пресмятане.

using System;

namespace SmallShop
{
    class Program
    {
        static void Main()
        {
            string town = Console.ReadLine();
            string product = Console.ReadLine();
            double quantity = double.Parse(Console.ReadLine());
            double price = 0;

            if (town == "Sofia")
            {
                switch (product)
                {
                    case "coffee":
                        price = 0.50;
                        break;
                    case "water":
                        price = 0.80;
                        break;
                    case "beer":
                        price = 1.20;
                        break;
                    case "sweets":
                        price = 1.45;
                        break;
                    case "peanuts":
                        price = 1.60;
                        break;
                    default:
                        Console.WriteLine("unknown product or town");
                        break;
                }
            }
            else if (town == "Plovdiv")
            {
                switch (product)
                {
                    case "coffee":
                        price = 0.40;
                        break;
                    case "water":
                        price = 0.70;
                        break;
                    case "beer":
                        price = 1.15;
                        break;
                    case "sweets":
                        price = 1.30;
                        break;
                    case "peanuts":
                        price = 1.50;
                        break;
                    default:
                        Console.WriteLine("unknown product or town");
                        break;
                }
            }
            else if (town == "Varna")
            {
                switch (product)
                {
                    case "coffee":
                        price = 0.45;
                        break;
                    case "water":
                        price = 0.70;
                        break;
                    case "beer":
                        price = 1.10;
                        break;
                    case "sweets":
                        price = 1.35;
                        break;
                    case "peanuts":
                        price = 1.55;
                        break;
                    default:
                        Console.WriteLine("unknown product or town");
                        break;
                }
            }
            double wholePrice = price * quantity;
            Console.WriteLine(wholePrice);
        }
    }
}
 

Тагове:
0
C# OOP Basics 06/01/2020 08:28:54
mirchev1977 avatar mirchev1977 6 Точки

Колега, би трябвало да закръглиш до втория знак след десетичната запетайка. Тогава ще се получи 6 * 1.2 = 7.2.

0
Ivailo73 avatar Ivailo73 0 Точки

Мисля ,че не е това, тъй като след това има примерен вход с сладки 2,23 и дават изхода да е с четири знака след десетичната запетая 2,2335. и при дебъгването когато стигна до изчисляването продукт *количество ми дава резултат 7,199999, което и дете от 7-8 клас знае ,че не е възможно 6*1,2 да е равно на 7,19999.

0
06/01/2020 09:00:36
prohause avatar prohause 331 Точки

Използвяй decimal вместо double и ще ти се оправи проблема. Double не е подходящ за операции с голяма точност. 

0
Ivailo73 avatar Ivailo73 0 Точки

Благодаря колега,но пак не се получава.

Някъде в лекциите някой от лекторите говореше за различните видове смятане на Вижюъл Студио- там банкерско, и други.

Да не би да е от тези настройки

0
07/01/2020 04:53:14
prohause avatar prohause 331 Точки

Колега проблемът не е при теб. Условието на задачата е писано за старо SDK. Ако ползваш VS2019 най вероятно по подразбиране е ибрано SDK 3.0 или по голямо. Трябва да смениш версията която твоя проект ползва. 

 

0