【问题标题】:VB6 Converting Long to Integer throwing overflowVB6 将 Long 转换为 Integer 抛出溢出
【发布时间】:2011-09-28 17:33:50
【问题描述】:

我正在尝试将 long 转换为整数。我相信 long 的值足够低以适合整数的范围。

我有代码:

'mapdc is a long
Debug.Print mapdc
Debug.Print CInt(mapdc)

第一行运行良好。它输出 1107367444。 然而,第二行导致发生溢出错误。

有什么想法吗? 谢谢!!!!

【问题讨论】:

  • 奇怪的问题,这是非常基本的。不涉及“铸造”,只涉及转换。所以这被错误地标记了。

标签: vb6 casting integer long-integer


【解决方案1】:

VB6 Integer 数据类型是 16 位。您正在导致溢出:mapdc 的值大于 32,767,它超出了 Integer 变量支持的值范围。有关 VB6 数据类型的更多信息,请参阅this MSDN page

【讨论】:

【解决方案2】:

VB6 整数类型的范围是 -32,768 到 32,767。显然,您的值超出了该范围并溢出。

Data Types - VB 6 tutorial

MSDN 确认 VB6 整数对应于具有相同范围的 Int16 的 .NET 类型:

Integer Data Type for Visual Basic 6.0 Users

【讨论】:

    【解决方案3】:

    VB6 中的 Int 为 16 位(范围从 -32,768 到 32,767)。 This link 提供了 VB6 与 .Net 等效项之间的比较

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 2015-03-01
      • 1970-01-01
      • 2018-12-01
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多