忽略VB中的小数

时间:2012-03-16 12:46:56

标签: vb.net

我最近刚开始用VB编程,而且我在编码方面也不是很好。有人可以帮助我解决以下问题吗?

我有两个值ab。当我划分它们时,我只想显示整数部分忽略所有小数并将其存储到变量c

a = 24, b = 11
c = 2

output: 2

3 个答案:

答案 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)

我已经跳过了将字符串转换为数字,因为这与你忽略小数的主要问题是一个单独的问题。

假设你有整数ab,你可以这样做:

Dim c = CInt(a / b) 'Will round decimal answer
Dim c = CInt(Int(a / b)) 'Will truncate decimal

CIntConvertToInt32两个do rounding(当小数值为0.5时,为最接近的偶数整数)。

您可以使用Int代替Fix功能代替Math.Floor功能 负数。您也可以使用{{1}} {{1}}来获取您想要了解的负数。{/ p>

相关问题