Cześć!
Staram się wykonać program imitujący działanie prostego kalkulatora. Algorytm działa dla każdej opcji z wyjątkiem reszty z dzielenia.
Na początku użytkownik wprowadza 3 zmienne: pierwszą liczbę (float), drugą liczbę (float) oraz znak działania (char). Następnie napisałem instrukcję switch- case dla każdego przypadku oraz default, gdy wprowadzona operacja jest nieprawidłowa. Tutaj fragment programu, którego działanie jest nieprawidłowe, a nie umiem dojść do tego, dlaczego tak jest:
case '%' :
bool isNumberOneInt, isNumberTwoInt;
isNumberOneInt = (numberOne == int(numberOne));
isNumberTwoInt = (numberTwo == int(numberTwo));
(isNumberOneInt && isNumberTwoInt) ? cout << numberOne << sign << numberTwo << "= "
<< int(numberOne) % int(numberTwo) :
cout << "Can't handle that";
break;
W momencie, w którym użytkownik wprowadza liczby o typie float, program powinien zwrócić tekst "can't handle that", a tak się nie dzieje. Po prostu oblicza wprowadzone działanie. Czy ktoś ma pomysł, dlaczego tak jest?