Como truncar um BigDecimal com mais de 2 casas decimais

Boa tarde a todos,
preciso truncar um BigDecimal que possui mais de 2 casas decimais e fixalo com apenas 2 casas após a virgula, por exemplo:
transformar 1.0392089 para 1.04
Alguém pode me ajudar?
Desde já agradeço pelas respostas!

Acabei de usar uma solução em JS

Exemplo:

var num = ‘125.5’;
num = parseFloat(num);
num.toFixed(2);

Resultado: 125.50

Você não quer truncar (ignorar casas decimais), mas sim arredondar (obter o número mais próximo com 2 casas). Tente isso:

BigDecimal arredondado = a_arredondar.round(new MathContext(2));

Vlw pela ajuda galera mas ja resolvi utilizando esta solução aqui, caso alguem se interesse de ver, ai vai:

public BigDecimal formataDecimal(BigDecimal vlrFator){ BigDecimal numFormatado = vlrFator.setScale(2, BigDecimal.ROUND_UP); return numFormatado; }

Blz Gabriel!? Cara, implementei a forma que você utilizou para arredondar o seguinte valor: 16,66666666666667. Só que ele informa o seguinte erro:

MathContext mc = new MathContext( (int)Math.min(this.precision() + 
				    (long)Math.ceil(10.0*divisor.precision()/3.0),
				    Integer.MAX_VALUE),
		                        RoundingMode.UNNECESSARY);
	    BigDecimal quotient;
	    try {
		quotient = this.divide(divisor, mc);
	    } catch (ArithmeticException e) {
		throw new ArithmeticException("Non-terminating decimal expansion; " +  // Linha apontada...
					      "no exact representable decimal result.");
	    }

Tente fazer 100/6 para ver se ele arredonda? Até mais!

Consegui resolver, fiz o seguinte:

BigDecimal valorUnitario = campValTotProd.divide(divisor, MathContext.DECIMAL32);

Até mais!