Eu possuo o seguinte código
Random gerador = new Random();
double dado = gerador.nextInt(6) + 1;
dado = dado/1000 %.3f;
double dado2 = gerador.nextInt(6) + 1;
dado2 = dado2/1000 %.3f;
double valorTotalJ1 = Jogo.jogadores.get(i).getTotalPontos();
double valorTotalJ2 = Jogo.jogadores.get(j).getTotalPontos();
BigDecimal dadojogador1 = new BigDecimal(dado);
BigDecimal dadojogador2 = new BigDecimal(dado2);
totalJogador1 = dadojogador1.add(totalJogador1).setScale(3, RoundingMode.DOWN);
totalJogador2 = dadojogador2.add(totalJogador2).setScale(3, RoundingMode.DOWN);
O problema é que esse valor não pode ser de jeito nenhum arredondado por uma regra de negócio, por exemplo, se o resultado do dado1 for 0.006 e o total do jogador 31.15 a soma tem que ser exatamente 31.156 e eu não consigo fazer isso de jeito nenhum, se eu desligar o rounding o java retorna o erro aritmético, alguém tem alguma ideia de como fazer isso?