[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;
Струва ми се малко усложнена и трудна за четене, може да е по-кратка и универсална за смятане по зададени данни! Ето моето решение, моля за мнение и препоръки! Има редове, които съм добавил само за да се визуализира по-добре, иначе може и по-кратко!
http://pastebin.com/4WCeLW5X
Успех!