خب ببین دوست من وقتی از
if (float.Parse(temp.ToString()) < (secHours / secTime))
finalPrice = temp * secPrice + primaryPrice + secPrice;
else if (float.Parse(temp.ToString()) == (secHours / secTime))
finalPrice = temp * secPrice + primaryPrice;
استفاده میکنی باید حواستو جمع کنی که همه ی شرایط را در بر بگیری تا این اتفاق نیوفته
اگر عدد 85 را دستی وارد کنی توی این کد و تریس کنی خواهی دید که finalPrice نه در if اول و نه در دومی محاسبه نمیشه چون اصلا شرطش را دارا نیست
این مورد فقط برای 85 نیست و اگر شما 4 - 16 - 25 - 34 - 46 و ... را هم بذاری باز جواب صفر میشه چون هیچ وقت داخل هیچ کدوم ازین if ها نمیفته
راه حل
درین جور موارد سعی کن همیشه یه else ، آخره شرطت بذاری که اگر هیچکدوم اجرا نشد این else آخری اجرا بشه
مثل این
if (float.Parse(temp.ToString()) < (secHours / secTime))
finalPrice = temp * secPrice + primaryPrice + secPrice;
else if (float.Parse(temp.ToString()) == (secHours / secTime))
finalPrice = temp * secPrice + primaryPrice;
else
finalPrice = temp * secPrice + primaryPrice;