我最近刚开始用VB编程,而且我在编码方面也不是很好。有人可以帮助我解决以下问题吗?
我有两个值a
和b
。当我划分它们时,我只想显示整数部分忽略所有小数并将其存储到变量c
即
a = 24, b = 11
c = 2
output: 2
答案 0 :(得分:2)
如果a,b和c是整数,它将自动执行此操作。或者,如果没有值是整数,则可以将结果转换为int:
c = Convert.ToInt32(a / b)
编辑:要从字符串转换,您只需说:
Dim c as Int32 = Convert.ToInt32(a) / Convert.ToInt32(b)
如果传入的字符串不是整数,则抛出异常。如果您希望获得无效的整数,则可以使用TryCast运算符或TryParse方法,该方法不会返回任何内容而非抛出异常。
Dim intA as Int32 = Int32.TryParse(a)
Dim intB as Int32 = Int32.TryParse(b)
Dim intC as Int32
If (intA IsNot Nothing) And (intB IsNot Nothing) Then
intC = intA / intB
Else
'Strings couldn't be converted
End If
我还建议你加入一些防止零除的东西,除非你只是想要抛出异常。
答案 1 :(得分:2)
根据你的评论,如果a和b是字符串,你可以这样做:
Sub Main
Dim a = "24" , b = "11"
Dim c as Integer = CInt(a) / CInt(b)
Console.WriteLine(c)
End Sub
如果c必须是一个字符串......
Sub Main
Dim a = "24" , b = "11"
Dim c = CInt((CInt(a) / CInt(b))).ToString()
Console.WriteLine(c)
End Sub
我更像是一个C#人,所以可能有一种更简单的方法。
更新要处理舍入,您可以这样做:
Sub Main
Dim a = "24" , b = "5"
Dim c = Math.Round(CInt(a) / CInt(b)).ToString()
Console.WriteLine(c)
End Sub
答案 2 :(得分:0)
我已经跳过了将字符串转换为数字,因为这与你忽略小数的主要问题是一个单独的问题。
假设你有整数a
和b
,你可以这样做:
Dim c = CInt(a / b) 'Will round decimal answer
Dim c = CInt(Int(a / b)) 'Will truncate decimal
CInt
和ConvertToInt32
两个do rounding(当小数值为0.5时,为最接近的偶数整数)。
您可以使用Int
代替Fix
功能代替Math.Floor
功能
负数。您也可以使用{{1}} {{1}}来获取您想要了解的负数。{/ p>