当前位置:  开发笔记 > 编程语言 > 正文

如果"14"LEQ"7"()失败

如何解决《如果"14"LEQ"7"()失败》经验,为你挑选了1个好方法。

我正在制作一个改变.gcd文件中坐标值的程序,我得到了单个坐标线,但是双坐标线没有.该程序应该将双坐标分开并将它们作为单个坐标分别运行.为了实现这一点,我将坐标的形式排序到不同的代码段,以提供正确的输出.使用字符串的长度我可以轻松地对它们进行排序.编程时,我遇到了一个简单的问题

IF " " LEQ " " ()

命令.给定值会得到错误的结果.一个很好的例子是:

@echo off

:start
if "14" LEQ "7" goto next
echo this should be printed
pause
exit /b

:next
echo this shouldn't be printed
pause
exit /b

删除""似乎解决了问题,但我需要比较变量,它们可以有空格,证明括号.所以问题是:

为什么翻译会得到错误的结果,我怎样才能轻松解决这个问题呢?

谢谢,-Tom



1> dxiv..:
if "14" LEQ "7" goto next

这是一个词典字符串比较,其中"14"<"7"因为第一个非等字符1 <7.

如您所述,如果删除引号,则以下内容将进行数值比较.

if 14 LEQ 7 goto next

这与if /?帮助一致:

这些比较是通用的,因为如果string1和string2都包含所有数字,则字符串将转换为数字并执行数字比较.

引号(在第一种情况下是比较的字符串的一部分)不是数字,因此不执行到数字的转换,并且通过词法规则对字符串进行比较.

你也这么说but I need to compare variables, which can have spaces.但是,数值不包含空格,也不需要引号.相反,一旦用引号括起来,它就不再是数值,而是字符串.因此,您必须事先决定/区分是否要比较数值和字符串值.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有