我正在编写这个学校的分配,说要将一个数字转换为文本
Ex:20应该在这个程序中查看==> 20
我遇到了这个问题
Dim num,y As Integer
num = 26
y = num / 10
结果是2.6但是因为它的整数。
结果应该是y
是" 2"但相反,股票" 3"
我对C ++没有任何问题
请有人解释问题以及如何解决问题 提前谢谢你
答案 0 :(得分:2)
来自MSDN VB.Net Operators
使用\ Operator(Visual Basic)执行整数除法。 整数除法返回商,即整数 代表除数可以分成的次数 股息,不考虑任何余额。除数和 红利必须是整数类型(SByte,Byte,Short,UShort, 此运算符的整数,UInteger,Long和ULong)。所有其他类型 必须首先转换为整数类型。
除以两个数字并返回浮点结果。 在执行除法之前,任何整数数字表达式都是 扩大到双倍。如果将结果分配给整数数据类型, Visual Basic尝试将结果从Double转换为该类型。
所以
y = num / 10 = 3
y = num \ 10 = 2
查看IL汇编
Sub Main
Dim num as Integer = 26
Dim result as integer = num / 10
Console.WriteLine(result)
End Sub
IL_0000: ldc.i4.s 1A
IL_0002: stloc.0 // num
IL_0003: ldloc.0 // num
IL_0004: conv.r8
IL_0005: ldc.r8 00 00 00 00 00 00 24 40
IL_000E: div
IL_000F: call System.Math.Round
IL_0014: conv.ovf.i4
IL_0015: stloc.1 // result
IL_0016: ldloc.1 // result
IL_0017: call System.Console.WriteLine
您可以轻松发现对System.Math.Round的调用以及将浮点除法的返回值转换为整数