qual a diferença entre b1 e b2?
double b = 1.25
BigDecimal b1 = new BigDecimal("" + b);
BigDecimal b2 = new BigDecimal(b);
qual a diferença entre b1 e b2?
double b = 1.25
BigDecimal b1 = new BigDecimal("" + b);
BigDecimal b2 = new BigDecimal(b);
Um usa o construtor de string e outro o de double. Se vc fizer b1== b2 dá falso já que são objetos diferentes apontando para referências diferentes;
A questão não seria essa. Vão dar false da mesma forma com dois construtores String ou dois construtores Double.
A diferença é no próprio construtor. Tal como o double não é um valor exato, usar o construtor que recebe double para um BigDecimal vai herdar esse “erro” e em vez de 2.5, podes ter 2.49999999999999999 ou 2.500000000001
Por outro lado, se usares o construtor com String, tens a garantia de que o valor criado em BigDecimal é exatamente 2.5.