Problemas com Casas decimais

Pessoal estou desenvolvendo um sistema de gestão financeira, e eu trabalho com números que na base são decimal(22,10),
o problema que quando faço calculos como esses,

		BigDecimal decimal = new BigDecimal("1145754845424.0000000001");
		BigDecimal decimal2 = new BigDecimal("1145754845424.000000002");

		System.out.println(decimal.multiply(decimal2).setScale(10,BigDecimal.ROUND_HALF_EVEN).setScale(12,BigDecimal.ROUND_HALF_UP));

resultado = 1312754165812574133742182.085175390400

ocorre uma exception dizendo que estou tentando gravar um número maior que o campo…

Como que eu posso resolver isso… :roll: :roll: Tentei com o código acima mas não rolou.

e fora multiplicação tenho soma, substração e divisão. :cry:

Não entendi direito sua dúvida. Ela está no resultado ou porque está dando erro na execução?
Executei seu código aqui e deu certo…

Sem a formatação, deu
1312754165812574133742182.0851753904000000002
Com seu código (escala de 10 depois de 12)
1312754165812574133742182.085175390400

Não entendi pq vc jogou na escala “10” e depois “12”. Assim, os dois últimos caracteres sempre serão zero, pelo que entendi.
Perdão se tiver sendo meio ignorante pois quase nunca mexi no BigDecimal.

[quote=marciosantri]Não entendi direito sua dúvida. Ela está no resultado ou porque está dando erro na execução?
Executei seu código aqui e deu certo…

Sem a formatação, deu
1312754165812574133742182.0851753904000000002
Com seu código (escala de 10 depois de 12)
1312754165812574133742182.085175390400

Não entendi pq vc jogou na escala “10” e depois “12”. Assim, os dois últimos caracteres sempre serão zero, pelo que entendi.
Perdão se tiver sendo meio ignorante pois quase nunca mexi no BigDecimal.[/quote]

O problema esta no resultado, pois eu só posso ter 12 antes e 10 depois da virgula… Eu consigo arredondar os que estão antes da virgula para 12 casas decimais e os que estão depois para 10 ?

Valeu

cara, que arredondamento é esse?
vc quer transformar um numero do tipo:
1312754165812574133742182.0851753904000000002
em
131275416581.0851753904
?

veja se é isso mesmo que vc quer…
fazendo uma comparação grosseira seria o equivalente em transformar um bilhão de reais em um real :shock: