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没有违反):-谢谢!