除法时得不到正确答案

除法时得不到正确答案
echo off
title Numbers Part 3
color a
goto input
:input
echo what to divide?
set /p by=
cls
echo %by%?
ping localhost -n 2 >nul
cls
echo Well, %by% by what?
set /p with=
pause
cls
echo Great
ping localhost -n 3 >nul
cls
goto answer
:answer
echo The Answer of %by% by %with% is
set /a Anser=%by%/%with%
echo %Anser%
ping localhost -n 3 >nul
echo code made by ******
pause

在此代码中,我无法获得正确答案,小数不正确!我该如何修复?

答案1

我无法得到正确答案,小数不正确!

任何SET /A返回小数结果的计算都将向下舍入为最接近的整数。

来源:设置 - 环境变量 - Windows CMD - SS64.com


我该如何修复它?

你不能。

除了使用其他脚本语言外,没有其他真正的解决方法可以实现浮点数学。

唯一的例外可能是,如果小数位数有限且固定(例如 2),那么您可以将所有内容乘以 100。

要在最终结果中显示小数分隔符,请将整数除以 100,然后是小数分隔符,再将模数除以 100 连接起来:

SET /A Whole = %Result% / 100
SET /A "Fraction = %Result% %% 100"
SET Result=%Whole%.%Fraction%

但这可能会破坏 32 位的限制。

一般来说,对于浮点数学,我建议使用其他脚本语言。

来源:批处理文件 - 数学

相关内容