[Homework] C# Basics - Primitive Data Types and Variables - Comparing Floats
Здравейте,
Днес се опитах да реша 3-та задача и се оказа, че е доста по - трудна отколкото изглежда. Проблема е, че когато смятам eps (разликата между двете float числа) и предвиждам да е на граничната стойност 0,000001, системата винаги изчислява стойност за eps близка, но по - малка от 0,000001. Съответно финалния отговор на задачата при гранична стойност става True. В заданието е изрично оказано отговора в граничната стойност да е false. Ако за eps + двете първоначални числа ползвам double (въпреки, че в условието изрично е записано юзърските числа да са float) пак не изчислява коректно eps при зададени числа, така че да се получи гранична стойност 0,000001. Говорих с асистентите, казаха, че ако не се използва decimal, а флоат и double вероятно няма да може да се реши проблема.
Ако все пак някой има идея как да стане без decimal, нека сподели - стана ми интересно :)
Ето го и кода:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Просто, кратко и ясно:
double firstNumber = (double.Parse(Console.ReadLine()));
double secondNumber = (double.Parse(Console.ReadLine()));
bool equal = Math.Abs(firstNumber - secondNumber) < 0.000001;
Console.WriteLine(equal);
Ахахахах егати цар си браат
БОГ !