Когда я выполняю свою программу и вставляю что-то вроде 1280000000 * 20, это дает мне -169803776, когда должно быть 25600000000, когда я тогда пытаюсь 25600000000/20, это дает мне -1698037766, что отличается. Это показывает, что с моим калькулятором что-то не так, потому что законы математики говорят, когда a * b = c, b / c = a, что не так в этой ситуации. Расчеты также неверны.
Я попытался поместить тот же код в python (на другом языке), и он отлично работает, поэтому я думаю, что это как-то связано с самим пакетом.
echo off
cls
:start
cls
echo Welcome to the calculator
echo.
echo Choose one of the of the following
echo.
echo 1. Multiplication
echo 2. Division
echo.
set /p choose=Choose a number:
IF %choose%==1 (
goto multiply
) ELSE IF %choose%==2 (
goto divide
) ELSE (
goto error
)
:error
cls
echo THAT ISNT AN OPTION!!
echo.
pause
goto start
:multiply
cls
echo Pick 2 numbers to multiply
echo.
set /p a=Number 1:
set /p b=Number 2:
set /a c=%a%*%b%
cls
echo %a% x %b% = %c%
pause
goto start
:divide
cls
echo Pick 2 numbers to divide
echo.
set /p a=Number 1:
set /p b=Number 2:
set /a c=%a%/%b%
cls
echo %a% / %b% = %c%
pause
goto start
Я ожидаю, что выход 1280000000 * 20 = 25600000000, но фактический результат равен -169803776. По какой-то причине это число меняется каждый раз на отрицательное.