Batch file 是否可以告诉批处理文件在某个字符后分析所有数据?

Batch file 是否可以告诉批处理文件在某个字符后分析所有数据?,batch-file,Batch File,我有这个代码来求数字的平方根。但是,因为它是批处理的,所以它不支持浮点数。我想让人们输入浮点数,然后让我的代码能够知道小数点后有多少位,然后将其上移多少位,使其成为正整数,哪个批次可以使用 这可能吗 如果没有,您知道有其他代码允许我用十进制数进行平方根计算吗 这是我现有的平方根代码: @echo off color 16 Title SquareRoot :StartSquareRoot cls echo Number: set /p number= call :SquareRoot %num

我有这个代码来求数字的平方根。但是,因为它是批处理的,所以它不支持浮点数。我想让人们输入浮点数,然后让我的代码能够知道小数点后有多少位,然后将其上移多少位,使其成为正整数,哪个批次可以使用

这可能吗

如果没有,您知道有其他代码允许我用十进制数进行平方根计算吗

这是我现有的平方根代码:

@echo off
color 16
Title SquareRoot

:StartSquareRoot
cls
echo Number:
set /p number=
call :SquareRoot %number%
echo Square: %number%
echo Root: %answer%
pause
goto StartSquareRoot

:SquareRoot
SETLOCAL
    EnableDelayedExpansion
set root=1
set /a sqr=%root%*%root%

:Loop
if %sqr% LSS %number% (
    set /a root=!root!+1
    set /a sqr=!root!*!root!
    goto Loop
)
(EndLocal && set answer=%root% && exit /B)
如果您有任何帮助,我们将不胜感激。

使用“逗号移位”方法,您仍然可以绑定到INT32。如果您的数字太大(换档后),您会收到错误的结果或错误消息

更好地使用(借助)一种能够进行适当数学运算的编程语言(如Powershell):


引用
。。。(“‘command’”)…
有点不寻常,但不需要转义特殊字符,
在本例中)

请参见
设置/?
获取从字符位置到字符串结尾的信息
%PATH:~10,5%
将展开PATH环境变量,然后仅使用从第11位开始的5个字符(抵销10)扩展结果的字符。如果未指定长度,则默认为变量值的剩余部分。或使用
for/f
循环小数点分隔。请参见
获取/?
。请确保
SETLOCAL EnableDelayedExpansion
位于一行,并且
set root=1
应为
set ro>ot=%1
。同样
set/a sqr=%root%*%root%
set/a sqr=!root!*!root!
应该是
set/a sqr=root*root
…同样地,
set/a root=!root!+1
应该是
set/a root+=1
。然后你会意识到你可能不需要为现有代码启用延迟扩展!
@echo off
setlocal 
set /p "num=Number: "
for /f %%a in ('"powershell [math]::sqrt(%num%)"') do set "sqrt=%%a"
for /f %%a in ('"powershell %num%*%num%"') do set "sq=%%a"
echo Squareroot of %num% is %sqrt%, Square is %sq%