'\'运算符不支持浮点数?

时间:2010-01-19 11:28:01

标签: vb.net operators

Dim x As Integer = 1.8 \ 1 

错误:

  

Option Strict On禁止隐含   从'Double'转换为'Long'

修改

显然,Visual Basic会尝试将任何浮点数字表达式转换为Long。好的,这部分很清楚。

现在,我可以使用

CType((Math.Round(myResultingSingle)), Integer)

\运算符支持所有类型的MSDN tells为什么实际上只支持Long作为 expression1 ?!...

3 个答案:

答案 0 :(得分:2)

来自the MSDN page \ Operator (Visual Basic)

  

在执行除法之前,Visual Basic会尝试将任何浮点数值表达式转换为Long

。由于 Double Long 是一个缩小的转化,并且Option Strict已启用,因此您必须明确要求它发生。

答案 1 :(得分:2)

Here(在备注部分)是答案:

  

在进行分工之前,视觉   转换任何基本尝试   浮点数值表达式   长。如果Option Strict为On,则a   发生编译错误。

答案 2 :(得分:2)

整数除法运算符需要积分操作数。两种可能的方法:

  • Dim x As Integer = CInt(1.8)\ 2
  • Dim x As Integer = CInt(1.8 / 2)