1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB.NET | Verificar se um campo é Integer

Discussão em 'Programação' iniciada por diog0silva, 28 de Abril de 2009. (Respostas: 6; Visualizações: 6926)

  1. diog0silva

    diog0silva Power Member

    Boas.

    Queria saber se existe alguma função que verifique se o valor de determinado campo é integer. Sei que existe a função IsNumeric, mas essa aceita valores decimais.

    Cumprimentos.
     
  2. nasic

    nasic Power Member

    Não será o getType()?
     
  3. diog0silva

    diog0silva Power Member

    Com o GetType não consegui :\

    Mas fiz assim:

    If TextBox.Text = Int(TextBox.Text) Then
    MsgBox("É inteiro.")
    Else
    MsgBox("Não é inteiro.")
    End If

    ..e acho que resultou lol :D
     
  4. ribeiro55

    ribeiro55 Power Member

    Acredito que a framework tenha uma solução para isso, mas sinceramente nunca precisei e como tal nunca senti necessidade de procurar.
    Entretanto, para resolveres a situação, podes criar uma solução sapateira:

    Código:
    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Numero1 As String = 45
            Dim Numero2 As String = 45.5
    
            MsgBox("Numero " & Numero1 & " é inteiro? " & IsInteger(Numero1))
            MsgBox("Numero " & Numero2 & " é inteiro? " & IsInteger(Numero2))
        End Sub
    
        Public Function IsInteger(ByVal Numero As String) As Boolean
            If IsNumeric(Numero) = True Then
                If Numero.Contains(",") = True Then Return False
                Return True
            End If
            Return False
        End Function
    End Class
    EDIT: Se espetares isto (e por isto, entenda-se o método "IsInteger" apenas) num módulo, ou Shared numa classe qualquer, podes usar tal e qual como usas o "IsNumeric", mas escrevendo o nome do método que criaste "IsInteger"
     
    Última edição: 29 de Abril de 2009
  5. iznougud

    iznougud I quit My Job for Folding

    Solução sapateira é a que eu uso, a tua ate e aceitavel :D

    Código:
    
    try
    
        dim num as integer = CInt(strNumero)
    
        return True
    
    catch ex as exception
    
        Return False
    
    end try
    
    
     
  6. ribeiro55

    ribeiro55 Power Member

    O problema dessa solução é que se testares um número decimal, o CInt vai aproveitar a parte inteira e não produz um erro.
     
  7. jpaulino

    jpaulino Power Member


    Para verificares se o campo é Integer podes utilizar o método Integer.TryParse() e fazer:


    Código:
     
            Dim num As Decimal = 45.5
            Dim result As Integer
    
            If Integer.TryParse(num.ToString(), result) Then
                Stop ' Inteiro
            Else
                Stop ' Não Inteiro
            End If
    
     

Partilhar esta Página