Batch file 批量处理负十进制数
我的是一个非常简单的代码——我想知道两个日期之间的差异是否会产生负面影响。问题不在于获取值,而在于检查它们是否为负值。这是我的密码:Batch file 批量处理负十进制数,batch-file,cmd,Batch File,Cmd,我的是一个非常简单的代码——我想知道两个日期之间的差异是否会产生负面影响。问题不在于获取值,而在于检查它们是否为负值。这是我的密码: if !val! LSS 0 ( echo value is !val! echo value is less than zero - SLA breached! ) else ( echo value is !val! echo value is greater than zero
if !val! LSS 0 (
echo value is !val!
echo value is less than zero - SLA breached!
) else (
echo value is !val!
echo value is greater than zero - SLA not breached.
)
的值!瓦尔代码>是:
-0.9513888888888888888888888888888888888889
63.06736111111111111111111111111111111111
-1.09722222222222222222222222222222222222
-1.19236111111111111111111111111111111111
前两个结果很好——在检测它们是积极的和消极的方面没有问题。接下来的两个批次说它们比一个大!结果如下:
value is -.95138889
value is less than zero - SLA breached
value is 63.0673611
value is greater than zero - SLA not breached.
value is -1.1923611
value is greater than zero - SLA not breached.
value is -1.0972222
value is greater than zero - SLA not breached.
value is 63.0673611
value is greater than zero - SLA not breached.
value is -.95138889
value is less than zero - SLA breached
value is -1.0972222
value is less than zero - SLA breached
value is -1.1923611
value is less than zero - SLA breached
我哪里出错了?我找到了一种不同的方法来解决这个问题-
if "!val:~0,1!"=="-" (
echo value is !val!
echo value is less than zero - SLA breached!
) else (
echo value is !val!
echo value is greater than zero - SLA not breached.
)
结果如下:
value is -.95138889
value is less than zero - SLA breached
value is 63.0673611
value is greater than zero - SLA not breached.
value is -1.1923611
value is greater than zero - SLA not breached.
value is -1.0972222
value is greater than zero - SLA not breached.
value is 63.0673611
value is greater than zero - SLA not breached.
value is -.95138889
value is less than zero - SLA breached
value is -1.0972222
value is less than zero - SLA breached
value is -1.1923611
value is less than zero - SLA breached
希望这对别人有帮助 批处理不能使用浮点数OK,那么我必须在这里使用powershell。谢谢你,卡!值0
或0.000
或+0.0
或-.0
将被错误处理,但如果!瓦尔:。=!EQU 0
应该可以处理这个问题……我的结果不会产生+0.0,我验证了-0.0也可以正常工作(违反了sla)。我用的逻辑是把0或0看成是正的(SLA没有违反):-谢谢!