如何在Visual Basic中检查两个数字相除的结果是否是小数
下面是我需要做的:
Dim x As Integer = 12
Dim y As Integer = 5
If TypeOf x/y Is fraction Then
( do something )
End If
感谢您的预先支持。
您能不能不对两个数字进行求模运算,然后判断结果是否非零,如果非零,则它是一个分数?
Dim x As Integer = 12
Dim y As Integer = 5
If x Mod y > 0 Then
MsgBox (x & " / " & y & " has a remainder, so it must be a fraction.")
End If
If x Mod y = 0 ' Not a fraction
If x Mod y <> 0 ' Fraction
我猜你所说的“Fraction”是指“非整数”,因为从技术上讲,任何数字都可以表示为分数...
一种典型的方法是使用模运算符:
If x MOD y <> 0 Then
' x/y is a fraction
End If
这个解决方案更好,O(1)常数级别的。
If x Mod 1 = 0 Then ' Integer
If x Mod 1 <> 0 Then ' Float
.NET Framework提供了Math.DivRem
,因此如果您真的希望同时确定被除数和余数:
Dim x As Integer = 12
Dim y As Integer = 5
Dim r As Integer
Dim d As Integer = Math.DivRem(x, y, r)
If r <> 0 Then
( do something )
End If
/
运算符返回完整的商,包括余数。而\
运算符仅返回整数部分。请参阅 http://msdn.microsoft.com/en-us/library/25bswc76(v=vs.80).aspx 获取引用 :) - RB.a/b
。 - kiss my armpit