将Double转换为Integer的最佳方法是什么?

时间:2016-11-07 22:32:02

标签: vb.net

我的VB应用程序中

选项严格 off ,所以我现在已打开它。我现在有一些错误,我不确定如何修复:

pnlWait.Top = (Height - pnlWait.Height) / 2

在C#中,我会这样做:

pnlWait.Top = (int)(Height - pnlWait.Height) / 2;

但这在VB中不起作用。我尝试了Decimal.ToInt32,但之后却抱怨,因为它正在创建一个Double,并且没有Double.ToInt32Interger.Parse需要String,所以这不会有任何好处。

pnlWait.Top = Integer.Parse(((Height - pnlWait.Height) / 2).ToString) 'Yeah, right!

这让我觉得CTypeDirectCast可能会很好,但这些方法适用于很多对象,所以我认为它们不会有效。

2 个答案:

答案 0 :(得分:1)

经过链接发布后,我相信最好的选择是使用VB.Net特定的转换功能。我最初避免他们认为他们是从VB保留,但似乎他们不是。当它提到它们是内联编译时我卖了,所以我将使用CInt和其他人。

除了我的例子,我将使用Plutonix提供的建议。我完全忘了那个。

所以一般情况下我会用

pnlWait.Top = CInt((Height - pnlWait.Height) / 2)

并且

If DR.Item(Mailings.WelcomePacket.SelectToMail) Then

变为

If CBool(DR.Item(Mailings.WelcomePacket.SelectToMail)) Then

pnlWait.Top = (Height - pnlWait.Height) \ 2

更干净。

答案 1 :(得分:0)

pnlWait.Top = Convert.ToInt32((Me.Height - pnlWait.Height) / 2)