Как сохранить точность при работе с двойными в Java? У меня есть следующий тестовый пример:
double x = -1.0 / 3.0;
double y = 1.0000000001;
Point2 p = new Point2(x, y);
String expected = "(" + x + ", " + y + ")";
assertEquals(expected, p.toString());
Конструктор Point2:
public Point2(double x, double y) {
this.x = x;
this.y = y;
}
Переопределение toString:
@Override
public String toString() {
return String.format("(%f, %f)", this.x, this.y);
}
Что не удается: org.junit.ComparisonFailure: expected:<(-0.333333[3333333333, 1.0000000001])> but was:<(-0.333333[, 1.000000])>