试图划分两个数字,而不是将它划分为分割asp.net的数字

时间:2014-10-16 15:16:43

标签: asp.net numbers division

我试图将两个数字分开,并且不将它舍入到最接近的整数

    Dim dImgRatio As Decimal = 1.566
    Dim newWidth As Decimal = 400
    Dim newHeight As Decimal = newWidth \ dImgRatio

它总是给我newHeith = 200而不是255

就像它在进行分割之前将dImgRatio四舍五入为止。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您使用错误类型的运算符进行十进制除法,它是正斜杠/ 而不是反斜杠\

Dim newHeight As Decimal = (newWidth / dImgRatio)

反斜杠用于整数除法,这就是为什么newWidth转换为整数值(舍入)

Arithmetic Operators in Visual Basic

  

使用\ Operator(Visual Basic)执行整数除法。   整数除法返回商,即整数   代表除数可以分成的次数   股息,不考虑任何余额。

另见: \ Operator (Visual Basic)

  

在执行除法之前,Visual Basic 会尝试转换任何内容   浮点数字表达式为Long 。如果Option Strict为On,则a   发生编译错误。如果Option Strict为Off,则为OverflowException   如果值超出长数据类型的范围,则可以   (Visual Basic)。 转换为Long也受银行家的约束   舍入