当我执行程序并放入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。由于某种原因,此数字每次都会变为负数。