Fazer uma PerguntaFazer uma Pergunta
 

Resposta PropostaProblema com formatação de campo numerico

  • terça-feira, 3 de novembro de 2009 18:09DarkDucke Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Olá pessoal, estou utilizando um projeto onde tem um ascx simples para criar um TextBox, até ai tudo bem,
    o problema é que após colocar um valor neste textbox e salvar quanto recarrega a informação são adicionados
    alguns zeros no valor que informei
    um exemplo:

    informo no campo o valor 1475 = 14.75
    depois de salvar e colocar o valor no campo para edição fica
    14750000 =  147.500,00

    ou seja, o valor fica assim e se eu salvar de novo adiciona mais 4 zeros no valor atual
    147500000000

    segue código do ascx que cria o text box

    OBs: o valor que vem da base de dados e que é gravado está correto, o campo que adiciona estes zeros a mais

    <asp:TextBox ID="txtValue" runat="server"></asp:TextBox>
    <ajaxToolkit:FilteredTextBoxExtender ID="ftbeValue" runat="server" TargetControlID="txtValue"
        FilterType="Custom, Numbers" ValidChars=".-" />
    <asp:RequiredFieldValidator ID="rfvValue" ControlToValidate="txtValue" Font-Name="verdana"
        Font-Size="9pt" runat="server" Display="None"></asp:RequiredFieldValidator>
    <asp:RangeValidator ID="rvValue" runat="server" ControlToValidate="txtValue" Type="Currency"
        Display="None"></asp:RangeValidator>
    <ajaxToolkit:ValidatorCalloutExtender runat="Server" ID="rfvValueE" TargetControlID="rfvValue"
        HighlightCssClass="validatorCalloutHighlight" />
    <ajaxToolkit:ValidatorCalloutExtender runat="Server" ID="rvValueE" TargetControlID="rvValue"
        HighlightCssClass="validatorCalloutHighlight" />
    
    
    Obrigado novamente!!!!

    att.

Todas as Respostas

  • terça-feira, 3 de novembro de 2009 18:21Murilo Amaru Gomes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Isso tem a ver com cultura, quando você usa a cultura pt-BR ele considera o . como uma multiplicação.
    Solução: não insira . para separar centanas, milhares, etc. Use , para separar décimos de inteiros.
  • terça-feira, 3 de novembro de 2009 18:28LeandrodeMelloFagundes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Você pode utilizar ao invés de , ou . o System.Globalization.Culture.CurrentCulture.NumberFormat.CurrencyDecimalSeparator ou alguém próximo disso. Ele retorna o separador de decimais da cultura corrente. Ou seja, se você estiver com a cultura em ingles será . se estiver com a cultura em portugues, será a virgula automaticamente
    :)
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
  • terça-feira, 3 de novembro de 2009 20:51DarkDucke Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Obrigado pela resposta pessoal, agora como arrumo isso?
    é no meu servidor ou no site?

    Obs: eu não utilizo "." nem "," pq o campo não aceita
    simplismente insiro 1575 para ser 15,75 ou 15.75

    como devo configurar isso para que não aconteça este problema?


    Obrigado novamente!!
  • quarta-feira, 4 de novembro de 2009 4:12DarkDucke Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Em?? alguem sabe como eu arrumo isso?

    Obrigado!

  • quarta-feira, 4 de novembro de 2009 12:03LeandrodeMelloFagundes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Darducke,

    se você insere 1575 e ele transforma para 15,75 é pq em algum lugar foi mandado formatar com 2 casas decimais.
    Type
    =
    "Currency"
    
    Será que não é isso?
    Já fez esse teste?




    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
  • quarta-feira, 4 de novembro de 2009 13:56DarkDucke Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Olá Leandro, obrigado pela resposta, veja no codigo do controle acima
    que o type já esta como currency, ele nao transforma em xx,xx
    isso eh quando vou mostrar os valores em outra pagina faço a formataçãode um valor xxxx para xx,xx
    o que acontece eh que o campo adiciona 4 zeros quando o valor é jogado para dentro dele
    quando busco os dados do bd para a edição, no codigo do controle não tem nenhuma regra de formatação
    e lembrando que o controle não aceita digitar "," e nem "." o que preciso que que quando jogo o valor
    no controle ele não adicione os zeros que está adicionando,
    isso ocorre neste controle e em outros que tenho to tipo numeric!

    Obrigado novamente!
  • quarta-feira, 4 de novembro de 2009 14:31DarkDucke Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Então, consegui um pequeno progresso, em coloquei no FilterTextBoxExtender assim
    ValidChars
    =
    ".-,"
     
    Adicionei a "," que não tinha, agora eu consigo digitar a "," e QUASE fica correto,
    se eu informo no campo o valor 15,75 e mando gravar quando ele preenche o campo novamente
    com o valor fica 15,7500 ou seja, ainda está ficando com 4 casas decimais, adicionando 2 zeros,
    e mandando gravar assim não deixa fala que devo informar um valor entre "0" e "999999"
    mais se tiver soh duas casas decimais não da erro na validação
    15,75 não é igual a 15,7500 ?

    agora qual o problema ainda?

    Obrigado pela atenção!
  • quarta-feira, 4 de novembro de 2009 14:37LeandrodeMelloFagundes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Dark, isso provavelmente é pq em algum lugar ele esta transformando a cultura
    seu 15,75 vira 15, 7500 (sete mil e quinhentos)
    eu não entendo de asp net e não sei o objetivo dos validchars
    Bom, estou tão perdido quanto você. hehehe

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
  • quarta-feira, 4 de novembro de 2009 15:13DarkDucke Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Obrigado novamente Leandro, vou esperar alguem que entenda do assunto me ajudar,
    vc sabe me dizer qual a cultura para brasil?

    pt-BR ?


    seria isso?

  • quarta-feira, 4 de novembro de 2009 15:30LeandrodeMelloFagundes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Resposta Proposta
    isso mesmo.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
  • quarta-feira, 4 de novembro de 2009 18:14DarkDucke Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Mais alguem pode me ajudar?

    estou perdido nisso aqui e preciso resolver!


    Obrigado!