\
ach, azn, bch, bzn это переменные для записи числителя и знаменателя дроби.
Зачем писать такой комментарий, если сразу можно переменные назвать нормально?
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
А для кого придуман InvariantCulture и второй аргумент у всяких double.Parse?
Это что за енам такой интересный?
И зачем тогда передавать в метод целый TextBox, если от него нужен только Text?
double value = n_ == 1 ? double.Parse(tf.Text) : double.Parse(ts.Text);
Вот это вообще что такое?
Func<BigInteger> eulerGCD = () =>
{
var m = first;
var n = second;
while (true)
{
var r = m % n;
if (r == 0)
{
break;
}
m = n;
n = r;
}
return n;
};
И снова енам вступает в бой:
if (n_ == 1)
{
ach = (int)(first & 0xFFF); azn = (int)(second & 0xFFF);
}
if(n_ == 2)
{
bch = (int)(first); bzn = (int)(second);
}
Предлагаю для начала разбить этот метод на более-менее самостоятельные части и протестировать их все по отдельности. Тогда найдёшь, в чём дело.
Разбираться в таком г-коде нет никакого желания.