如何比较批处理中的数字大小?

2025-03-13 14:52:21
推荐回答(2个)
回答1:

如果比较的两个值是纯数字组成,将自动转换为整数进行比较,bat整数的精度为

-2147483648~2147483647

显然2912022528超过了这个精度,如果执行超过上述精度的数值比较,结果显然不好预测

即使给数字加上引号进行字符串比较,也是不比较长度的,而会从第一个字符开始逐字符比较

因此300大于2912022528,2912022528共有10个字符,要比较数字大小,可以加上引号进行字符串比较,如果是大于10个字符的数字则大于这个数,小于10个数字则小于这个数,如果同样是10个字符则比较大小,


set /p freesize=请输入大小:if not "%freesize:~10%"=="" ( echo Enough ) else (if not "%freesize:~9%"=="" if "%freesize%" geq "2912022528" echo Enough )

当输入数字大于等于2912022528时会输出Enough,否则没有输出

回答2:

用if语句来比较。
例子:
if 3 gtr 2 (echo 大于) else echo 小于

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于