gpt4 book ai didi

if-statement - 如果语句不被视为 bool 值?

转载 作者:行者123 更新时间:2023-12-02 08:21:09 25 4
gpt4 key购买 nike

我是一名学生,我的软件老师给我们举了这个例子——

BEGIN
IF first < second
THEN display first,second
ELSE
display second,first
ENDIF
END

如果 first 和 second 这两个数字相同(例如 2,2),则将采用 ELSE 路径,因为 first < second 的计算结果为 false,因此不会执行。

但是,我的软件老师说在某些语言中,两个数字相同会产生问题并导致错误或奇怪的行为(我相信他以 Visual Basic 为例)。我不明白这怎么可能。 IF 语句被评估为 true 或 false,因此必须运行其中一个选项,并且评估 2 是否小于 2 应该没有问题。

虽然他是我的老师,我尊重他,但我并不完全信任他,他有时也会犯错误。他说的对吗?如果是这样,我可以举一些具体的例子来说明会发生什么吗?谢谢。

最佳答案

也许他是在(以迂回的方式)谈论浮点不精确?

there should be no problem in evaluating whether 2 is less than 2.

对于使用不精确表示存储的某些数字,情况并非总是如此,例如:

Dim first As Double, second As Double

first = 0.3
second = 0.1 + 0.2

If first < second Then
Debug.Print first, "is less than", second
Else
Debug.Print "equal or greater"
End If

输出:

0.3 is less than 0.3

参见 Is floating point math broken?

当超出浮点类型的安全范围时,这一点会更加明显,例如在 JavaScript 中:

> 9007199254740992 == 9007199254740993
< true

关于if-statement - 如果语句不被视为 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026602/

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