Я использую следующий код:Возвращаясь ZERO с определенной точностью, используя BigDecimal
//...
else if(number.equals(ZERO))
return BigDecimal.ZERO.setScale(precision);
Функция вызывается с помощью
BigDecimal num = new BigDecimal(0);
System.out.println(Newton.sqrt(num, 5));
и всегда возвращает 0E-100 (независимо от точности при условии,), но мне нужно 0,00000 и т. д. Спасибо
Обратите внимание, что 'BigDecimal.ZERO' существует, вам не нужно определять свою собственную константу для этого. – fge
Спасибо, я изменил это, но он не решает проблему, к сожалению. – jgpt
Обратите также внимание, что 'BigDecimal.equals (Object)' будет возвращать 'true' только * iff * значение двух значений * и * то же самое. Попробуйте 'BigDecimal.compareTo (BigDecimal) == 0' вместо этого. Хотя, я не уверен, какова цель вашего кода. –