gpt4 book ai didi

vb.net - 在 VB 中为什么 (1 = 1) 为 False

转载 作者:行者123 更新时间:2023-12-03 00:37:46 25 4
gpt4 key购买 nike

我刚刚遇到了这段代码:

Dim d As Double

For i = 1 To 10
d = d + 0.1
Next

MsgBox(d)
MsgBox(d = 1)
MsgBox(1 - d)

谁能给我解释一下原因吗?为什么d设置为1

最佳答案

浮点类型和整数类型不能直接比较,因为它们的二进制表示不同。

0.1作为浮点类型相加十次的结果很可能是一个接近于1的值,但不完全是。

比较浮点值时,您需要使用一个最小值,使这些值可以有所不同,但仍被视为相同的值(该值通常称为 epsilon)。该值取决于应用程序。

我建议阅读What Every Computer Scientist Should Know About Floating-Point Arithmetic进行深入讨论。

<小时/>

至于将 11.0 相比较 - 这些是不同的类型,因此不会相互比较。

关于vb.net - 在 VB 中为什么 (1 = 1) 为 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449551/

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