【问题标题】:What's the VB.NET method corresponding to the old CInt() VB method?与旧的 CInt() VB 方法对应的 VB.NET 方法是什么?
【发布时间】:2012-06-15 16:46:17
【问题描述】:

我不想在我的代码中使用旧的 Visual Basic 方法,而且我对与旧的 CInt() Visual Basic 方法相对应的最新 VB.NET 方法感到困惑。

例如,

Dim n1 as Double : n1 = CInt(2.1111111) 'Gets only 2 without rounding it
Dim n2 as Double : n2 = CInt(2.7777777) 'Get only 2 without rounding it

【问题讨论】:

标签: .net vb.net methods double type-conversion


【解决方案1】:

您也可以在 VB.NET 中使用CInt。它是 VB.NET 编译器支持的标准type conversion function。没有理由避免它。

但是,几乎每个类型转换操作都会四舍五入到最接近的整数(包括其他方法,例如Convert.ToInt32 等),而不是截断。您可以使用 Int or Fix 强制截断(对于负数有不同的行为)。

请注意,如果您希望避免使用 VB.NET 特定的转换例程,您可以使用 Math.TruncateMath.Floor 执行与 Int/Fix 相同的操作。


附带说明 - CInt in Visual Basic 6.0 也进行了舍入。 CInt 在 VB.NET 中的行为与 Visual Basic 6.0 中的行为相同。

【讨论】:

  • +1 只需使用 CInt。 There's no reason to avoid it。它是 .Net 框架的fully supported 一部分。使用 CInt,继续前进,完成一些实际工作。
  • @MarkJ 我同意 - 如果你打算用 Visual Basic 编写,你不妨使用该语言提供的工具。这有点像说“我想避免在 C# 中使用 int,并且我会一直写 System.Int32,因为这是框架定义它的方式”......
  • 啊,反正你的回答比我的好。你的通常是。 ;-)
  • 您还会发现 CInt 方法不在 Microsoft.VisualBasic 程序集中。这就是所有旧的兼容性方法所在。
  • @RobertBeaubien 否 - CInt 由语言直接提供。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
相关资源
最近更新 更多