Loading...
devil619 avatar devil619 62 Точки

[Homework] C# Basics - Primitive Data Types and Variables - Comparing Floats

Здравейте.

 

Бихте ли ми казали какво не е наред със следният код:

 

using System;

class ComparingFloats
{
         static void Main()
         {
              Console.Write("Enter first number : ");
              double a = double.Parse(Console.ReadLine());
              Console.Write("Enter second number : ");
              double b = double.Parse(Console.ReadLine());
              double eps = 0.000001;

              if (a > b)
              {
                   if (a - b > eps)
                   {
                   Console.WriteLine("The two numbers are not equal with precision 0.000001");
                   }
                   else
                   {
                   Console.WriteLine("The two numbers are equal with precision 0.000001");
                   }
              }
              else if (b > a)
              {
                   if (b - a > eps)
              {
                   Console.WriteLine("The two numbers are not equal with precision 0.000001");
              }
              else
              {
                   Console.WriteLine("The two numbers are equal with precision 0.000001");
              }
         }
    }

}

 

Благодаря предварително. :)

0
Programming Basics 26/09/2014 23:32:30
jabalka:
Темата е дублирана: https://softuni.bg/forum/questions/details/77
Bobosam avatar Bobosam 185 Точки
Best Answer

Кода ти работи. Най-вероятно конзолата иска да вкарваш запетая за разделител, а ти предполагам ползваш точката. По кода единствената забележка е, че пропускаш варианта двете числа да са равни при въвеждането.

1
mihayloff14 avatar mihayloff14 824 Точки

Съответният проблем със запетаята може да се оправи по следния начин:

ЛИНК

1
Neli_Iordanowa avatar Neli_Iordanowa 5 Точки

Според мен кода ти е наред, но използваш много излишни if -ове.

 

Ето и моето решение.

using System;

class ComparingFloats
{
    static void Main()
    {

      
        Console.Write("Enter first number: ");
        double a = double.Parse(Console.ReadLine());
        Console.Write("Enter second number: ");
        double b = double.Parse(Console.ReadLine());
        double compareVariable=0.000001;
        double equal =Math.Abs(a - b);
        if (equal<compareVariable)
        {
            Console.WriteLine("True");
        }
        else
        {
            Console.WriteLine("False");
        }
    }
}

0
devil619 avatar devil619 62 Точки

Твоят вариант е по-рационален. А за if-овете може и така да е, и аз мисля, че кодът ми е наред, но когато го изпълня при въвеждане на някаква стойност и след това Enter, блокаж, гърми, писка, не ми позволява да премина нататък. Може би грешката не е в кода, а някъде другаде. :)

0
mihayloff14 avatar mihayloff14 824 Точки

Аз само искам да добавя, когато показвате кода си, ползвайте сайтове като pastebin.com, за да е по-достъпен и лесен за четене.

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