Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eduardohaag

[Resolvido] Mascara de entrada com casas decimais

Recommended Posts

Olá tenho esse código que encontrei na internet para formatar um textbox como moeda enquanto digito no mesmo.

 

Public Class utils
    ''' <summary>
    ''' Método que formata para moeda o conteúdo de um TextBox
    ''' </summary>
    ''' <param name="txt">Controle a ser formatado</param>
    ''' <remarks></remarks>
    Public Shared Sub TextBoxMoeda(ByRef txt As TextBox)
        Dim n As String = String.Empty
        Dim v As Double = 0
        Try
            n = txt.Text.Replace(",", "").Replace(".", "")
            If n.Equals("") Then n = "000"
            n = n.PadLeft(3, "0")
            If n.Length > 3 And n.Substring(0, 1) = "0" Then n = n.Substring(1, n.Length - 1)
            v = Convert.ToDouble(n) / 100
            txt.Text = String.Format("{0:N}", v)
            txt.SelectionStart = txt.Text.Length
        Catch ex As Exception
            MessageBox.Show(ex.Message, "TextBoxMoeda")
            txt.Text = ""
        End Try
    End Sub
End Class

 Porém o código formata com 2 casas decimais, eu necessito que a formatação seja com 3 casas decimais.

Alguém tem ideia do que posso mudar no código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que o seu código faz é pegar qualquer número, dividor por 100 (o que significa que o número 200 se tornará 2) e adiciona duas casas decimais.

 

O que você precisa fazer é pegar o mesmo número 200 e transformá-lo em 0.2. Na hora de formatar, adicione uma terceira casa. 

 

Pode ser feito aumentando o valor de divisão para 1000 e utilizando o formato "{0:N3}".

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por igadino
      Bom dia pessoal, convertir essa função do C# para vba ele funciona perfeitamento no excel e access
      porem estou tentendo usar ela no vb.net  editor VISUAL STUDIO 2013, aparece o erro conforme a imagem enexo, alguem consegue corrigir esse erro;
      Function crc_ccitt_ffff(strParam As String) As String
              Const CRC_POLY_CCITT As Long = &H1021&
              Const CRC_START_CCITT_FFFF As Long = &HFFFF&
              Dim crc As Long, b() As Byte, c As Long, i As Long, j As Long
              Dim crc_tabccitt(0 To 255) As Long
              For i = 0 To 255
                  crc = 0
                  c = i * 256
                  For j = 0 To 7
                      If (crc Xor c) And 32768 Then
                          crc = (crc * 2) Xor CRC_POLY_CCITT
                      Else
                          crc = crc * 2
                      End If
                      c = c * 2
                  Next j
                  crc_tabccitt(i) = crc
              Next i
                  b = strParam
              crc = CRC_START_CCITT_FFFF
              For i = 0 To UBound(b) Step 2
                  crc = (crc * 256) Xor crc_tabccitt(((crc \ 256) Xor b(i)) And 255)
                  crc = ((crc \ 65536) * 65536) Xor crc
              Next i
              crc_ccitt_ffff = Hex(crc)
          End Function

    • Por manolegal
      Olá amigos(as) do Fórum.
      Tenho um número inteiro no PHP e preciso inseri-lo no Postgresql com 02 casas decimais.
      Defini o campo no Postgresql do tipo numeric(14,2)
      O valor está assim no PHP:
      2961966 Preciso gravar no BD da seguinte maneira:
      29619.66 Porém está gravando da seguinte forma:
      2961966.00 Tentei utilizando number_format, porém não consegui:
      $numero_bd = number_format($numero, '.', ''); $numero_bd = number_format($numero,2,"."); $numero_bd = number_format($numero,2,","numerovalor_ref_15,2,",","."); Caso alguém possa me ajudar, desde já agradeço.
    • Por manolegal
      Bom dia
      Preciso adequar um campo para receber valor com máscara com 03 casas decimais.
      Com 02 casas está funcionando corretamente:
      $('#meu_campo').maskMoney( {symbol: "R$ ", decimal: ",", thousands: "."} ); Tentei:
      $('#meu_campo').maskMoney( {symbol: "R$ ", decimal: ",", thousands: ".", precision: "3"} ); Porém não funciona e nem permite que eu digite algum valor no campo.
      Preciso que o campo aceite valores no formato: ###,### ou ##,###.
    • Por Roberto S. Santos
      Boa noite.
      Alguém pode me ajudar a fazer a conexão pra salvar Id, UserID e o nome da pessoa ?
      Bdados : cadastro
      Tabela : usuario
      Sem senha : root somente.
      Des de já agradeço.
    • Por Roberto S. Santos
      Boa noite amigos programadores.
      Como posso salvar os dados do tracker.dat no MySQL ?
      Dados : textbox1.text
      Estou usando vb.net 
      Queria uma tabela no MySQL usando o Wamp .
      Poderiam me ajudar ?
      Obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.