Olá a todos.
Dado o seguinte código:
[code]import java.math.BigDecimal;
public class Teste {
public static void main(String[] args) throws Throwable {
double r = 1.165;
int decimalPlace = 2;
BigDecimal bd = new BigDecimal(r);
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
r = bd.doubleValue();
System.out.println(r);
}
}[/code]
A saída é 1.17 (até ai tudo bem é a saída que eu quero)
Mas porque se eu coloco o valor de r= 11.165 a saída será 1,16??? :???:
Eu fiz uns testes e tive os resultados:
r= 1.165 a saída será 1,17 OK
r= 11.165 a saída será 1,16 ???
r= 111.165 a saída será 1,17 OK
r= 1111.165 a saída será 1,16 ???
r= 11111.165 a saída será 1,17 OK
No final vejo, que para um número de casas antes do ponto sendo impar tenho o resultado experado caso contrário não.
Não entendi o porque??? :???:
Att.