我试图将两个数字分开,并且不将它舍入到最接近的整数
Dim dImgRatio As Decimal = 1.566
Dim newWidth As Decimal = 400
Dim newHeight As Decimal = newWidth \ dImgRatio
它总是给我newHeith = 200而不是255
就像它在进行分割之前将dImgRatio四舍五入为止。
有什么想法吗?
答案 0 :(得分:0)
您使用错误类型的运算符进行十进制除法,它是正斜杠/
而不是反斜杠\
Dim newHeight As Decimal = (newWidth / dImgRatio)
反斜杠用于整数除法,这就是为什么newWidth
转换为整数值(舍入)
Arithmetic Operators in Visual Basic
使用\ Operator(Visual Basic)执行整数除法。 整数除法返回商,即整数 代表除数可以分成的次数 股息,不考虑任何余额。
在执行除法之前,Visual Basic 会尝试转换任何内容 浮点数字表达式为Long 。如果Option Strict为On,则a 发生编译错误。如果Option Strict为Off,则为OverflowException 如果值超出长数据类型的范围,则可以 (Visual Basic)。 转换为Long也受银行家的约束 舍入强>