gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:12:06 24 4
gpt4 key购买 nike

我正在编写一个程序来更改 .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

删除“”似乎可以解决问题,但我需要比较可以有空格的变量,以证明括号的合理性。所以问题是:

为什么解释器会得到错误的结果,我该如何轻松解决这个问题?

谢谢,-汤姆

最佳答案

if "14" LEQ "7" goto next

这会进行字典字符串比较,其中“14”<“7”因为第一个不相等的字符 1 < 7。

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

if 14 LEQ 7 goto next

这与if/?帮助一致:

These comparisons are generic, in that if both string1 and string2 are both comprised of all numeric digits, then the strings are converted to numbers and a numeric comparison is performed.

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

你也这么说但是我需要比较变量,可以有空格。但是,数值不/不能包含空格并且不需要引号。相反,一旦用引号引起来,它就不再是数值,而是字符串。因此,您必须提前决定/区分是否要比较数字值与字符串值。

关于windows - 如果 "14"LEQ "7"() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com