gpt4 book ai didi

batch-file - 批处理文件中的浮点除法

转载 作者:行者123 更新时间:2023-12-03 08:08:25 24 4
gpt4 key购买 nike

我需要在 dos 批处理中进行浮点除法。

我没有找到办法做到这一点。像这样的事情:

SET /A Res=10/3

返回一个整数。

有可能做到吗?

最佳答案

我知道这是一个非常古老的话题,但我在之前的所有答案中都找不到简单的 Batch 方法,所以我在这里发布了一个非常简单易用的纯 Batch 解决方案。

在批处理中使用定点算法执行操作很简单。 “定点”是指您必须提前设置小数位数并在整个操作过程中保持它。两个定点数之间的加减运算是直接进行的。乘法和除法运算需要一个辅助变量,我们可以称之为“一”,其值为 1 和正确的小数位数(如“0”位数)。相乘后,将乘积除以“一”;在除法之前,将被除数乘以“一”。这里是:

@echo off
setlocal EnableDelayedExpansion

set decimals=2

set /A one=1, decimalsP1=decimals+1
for /L %%i in (1,1,%decimals%) do set "one=!one!0"

:getNumber
set /P "numA=Enter a number with %decimals% decimals: "
if "!numA:~-%decimalsP1%,1!" equ "." goto numOK
echo The number must have a point and %decimals% decimals
goto getNumber

:numOK
set numB=2.54

set "fpA=%numA:.=%"
set "fpB=%numB:.=%"

set /A add=fpA+fpB, sub=fpA-fpB, mul=fpA*fpB/one, div=fpA*one/fpB

echo %numA% + %numB% = !add:~0,-%decimals%!.!add:~-%decimals%!
echo %numA% - %numB% = !sub:~0,-%decimals%!.!sub:~-%decimals%!
echo %numA% * %numB% = !mul:~0,-%decimals%!.!mul:~-%decimals%!
echo %numA% / %numB% = !div:~0,-%decimals%!.!div:~-%decimals%!

例如:
Enter a number with 2 decimals: 3.76
3.76 + 2.54 = 6.30
3.76 - 2.54 = 1.22
3.76 * 2.54 = 9.55
3.76 / 2.54 = 1.48

关于batch-file - 批处理文件中的浮点除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1503888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com