Valor monetário salvando com erros!
10/01/2011 00:00
0
Bom dia caros,

Estou trabalhando em um projeto, e no mesmo tem um campo que trabalha com valores monetários, e na hora em que faço qualquer tipo de alteração, os valores são acrescidos de mais dois zeros, tipo assim: Valor R$: 42.00 passa a ser Valor R$: 4200.00. Se eu fizer mais outra alteração, mesmo não sendo nesse campo valor, é acrescido mais dois zeros, passando a ficar assim: Valor R$: 420000.00. O que pode ser feito? Onde estará o erro?
Tags: Grails


0
Qual o tipo de dados desses campos de valor (Double, BigDecimal, etc)? E no banco de dados?
10/01/2011 00:00


0
Está Bigdecimal!!!

No BD está nesta config.: valor numeric(8,2) default 0.0,
Estou sem acesso no BD. pra confirmar realmente...
10/01/2011 00:00


0
Ao invés de cadastrar o número com ponto, cadastre-o com vírgula ou vice-versa.
10/01/2011 00:00


0
O pode estar acontecendo é que os zeros depois do ponto estao sendo considerados como dezenas e não como casas decimais. provavelmente pois vc nao está formatando o numero com o locale correto.
10/01/2011 00:00


0
Ok vamos lá. Isto vai depender da localização (locale) do browser do usuário.

Se seu browser estiver em português brasileiro ao inserir o número com vírgula o mesmo vai enteder a mesma como separador decimal, mas se inserir o mesmo número com ponto ele irá ignorar o ponto e considerará apenas os caracteres numéricos, o que resulta num número inteiro.

Por exemplo, na locale pt_BR:

[list]111.11 é gravado 11.111 (onze mil, cento e onze)[/*:m][/list:u]

Se você acessar a mesma URL do formulário que insere os números passando o parâmetro de locale en_US (/seudominio/create?lang=en_US) o resultado será o inverso do citado acima. Experimente!

Uma boa maneira de se tratar isto é utilizando client-side scripting. Dê uma olhada neste plugin do JQuery, com ele você pode forçar a formatação automática do campo, inclusive de acordo com a localização do usuário.

Outra forma, não muito elegante, seria forçar a localização da aplicação para pt_BR e limitar a entrada de caracteres nestes textfields.

Espero ter ajudado!
10/01/2011 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto