.net - 为什么在 vb.net 中如果我为单个变量分配一个数字它不等于相同的值

标签 .net vb.net floating-point

我一直在互联网上搜索,试图以最简单的形式理解为什么会发生这种行为。

Dim mysingle As Single = 456.11
Dim mybool As Boolean = mysingle = 456.11

在上面的行中 mybool 变为 false。我在将单数放入双数时发现了这种行为,我发现显示了额外的数字。 .net 文档指出单个是一个合适的值:S

我gatehr一个单是一个32位的浮点数?但是为什么当我明确说出数字是什么时会出现额外的数字..当然,内存应该存储我的号码两侧的数字都是 0 以填充内存位置?!

我的大脑被这个炸了:(

最佳答案

在第二个语句中比较的值不被视为 Single ,而是被视为 Double 。由于您使用的是 VB.NET,您可以使用 ! 后缀将其强制为 Single ,这将返回 True :

Dim mysingle As Single = 456.11
Dim mybool As Boolean = mysingle = 456.11!

关于.net - 为什么在 vb.net 中如果我为单个变量分配一个数字它不等于相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4080046/

相关文章:

c# - 在 C# 中将 reg 值写入本地计算机

vb.net - 连接两条贝塞尔曲线

Python 浮点比

c - 捕获浮点溢出异常

c# - 如何检查类型是否永远不是有效的泛型参数?

c# - 应用程序日志记录和信息分析

vb.net - VB.NET 和 Visual Studio Intellisense 中的多行 XML 注释

assembly - 为什么 FLD1 改为加载 NaN?

c# - HttpWebRequest,像 Fiddler 一样保持事件状态?

vb.net 保存列表框项目空行