Imutabilidade no BigDecimal?

Galera preciso de um help,

Estou usando o BigDecimal para representação de valores financeiros, sendo que a classe e imutavel tenho a seguinte duvida, sendo;

valor vindo do banco de dados

BigDecimal valor = 168958.00

retirando as casas decimais como o codigo valor.setScale(0, RoundingMode.FLOOR), fica assim: 168958

Mas preciso agora, formatar o valor novamente para que fique: 1689.58

De que forma eu consigo formatar o valor desta maneira?

Isso não é formatação de valores. Isso é dividir o valor original por 100, não?

Na realidade Thingol, o valor esta formatado desta maneira no Banco,

Tabela A (sempre acresce .00 no valor real)
168958.00

para gravar na Tabela B preciso retirar a casa decimal .00 e acrecentar o valor real, 1689.58

[quote=jonimca]Na realidade Thingol, o valor esta formatado desta maneira no Banco,

Tabela A (sempre acresce .00 no valor real)
168958.00

para gravar na Tabela B preciso retirar a casa decimal .00 e acrecentar o valor real, 1689.58[/quote]

Bom, em si tratando de valores numericos, vc pode pegar o valor inicial, por exemplo o seu 168958.00 e já dividir por 100, que ficaria 1689.5800, e quando gravar no banco, se o campo no banco for um double ou float ele já tratará isto… não?!

O BigDecimal é tão imutável quanto o String, ou seja, o objeto em si não pode ser mudado depois de criado, mas as variáveis que contém um BigDecimal podem ser mudadas.