Практика с использованием BigDecimal в первый раз. Мой главный выход метод должен быть:Вывод BigDecimal не содержит точных десятичных значений?
Площадь круга с радиусом 8.5949958is: 232.081671383290563028029402608911005665488497019210725540793500930304148269265220664195247142820189371870652494944664567810832522809505462646484375
Площадь круга с радиусом 3.440393959403938E7is: 3718483500498323.66662697460176592346057689232315135847190735857072463126614392248114882022491656243801116943359375
однако, что это не то, Распечатать редактор Я получаю значение
232.081671383290555535978683110442943871021270751953125
для круга одного и значение 3718483500498323.563695
для круга два. Коллега сообщил мне, что мне нужно использовать BigDecimals для каждого значения, чтобы результат был точным, но у меня создается впечатление, что я уже это делаю.
import java.math.BigDecimal;
public class Circle
{
private BigDecimal radius = new BigDecimal("0.0");
public Circle()
{
setRadius(0.0);
}
public void setRadius(double r)
{
this.radius = new BigDecimal(r);
}
public BigDecimal findCircleArea(double radius)
{
this.setRadius(radius);
BigDecimal Pi = new BigDecimal("3.14159");
BigDecimal rad = new BigDecimal(Math.pow(radius, 2.0));
BigDecimal a = Pi.multiply(rad);
return a;
}
}
Merge, если вам нужно, но я посмотрел вокруг и не смогли найти ответ, это действительно расстраивает меня.
Это хорошая загадка. Я лично не знаю, как получить эти цифры, если это не непонимание задачи. – Andremoniy