.NET Framework Developer Center >
Fóruns do .NET Development
>
.NET Development - Geral
>
Problema com formatação de campo numerico
Problema com formatação de campo numerico
- 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
Obrigado novamente!!!!<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" />
att.
Todas as Respostas
- 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. - 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) - 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!! - Em?? alguem sabe como eu arrumo isso?
Obrigado!
- 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) - 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! - 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! - 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) - 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?
- isso mesmo.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)- Sugerido como RespostaEduardo Henrique Belinatti quarta-feira, 4 de novembro de 2009 18:14
- Mais alguem pode me ajudar?
estou perdido nisso aqui e preciso resolver!
Obrigado!


