0

Есть такая запись. В ней создается класс с значениями 1 и 100 и потом проверяется, действительно ли он создался с такими значениями. Как называется вот это - 1.0, 0.001? Это что то типа округления видимо. Хотелось бы узнать название и почитать про такой способ записи числа double. 100.0, 0.001 - аналогично.

@Test
public void shouldCreateInterval() {
    Interval interval = new Interval(1.0, 100.0);
    assertEquals(interval.getFrom().doubleValue(), 1.0, 0.001);
    assertEquals(interval.getTo().doubleValue(), 100.0, 0.001);
}
batqr
  • 105
  • 1
    1.0 это само число, с которым сравнивают, 0.001 - допустимая погрешность. – Nofate Sep 29 '17 at 21:57
  • 1
    Почему так - см. https://ru.stackoverflow.com/questions/417453/Вычисления-на-числах-с-плавающей-точкой-не-работают – Nofate Sep 29 '17 at 21:58
  • Как это правильно называется в java, чтоб можно было почитать про использование погрешности? Не теорию а синтаксис. – batqr Sep 29 '17 at 22:01
  • 1
    Допустим, его называют epsilon. Все его использование заключается в сравнении чисел с плавающей точкой. Из-за особенностей, описанных по ссылке выше, проверка на равенство выглядит так: Math.abs(expected - actual) < epsilon – Nofate Sep 29 '17 at 22:05
  • 1
    Очень хорошая статья про плавающую точку https://habrahabr.ru/post/337260/ – rjhdby Sep 29 '17 at 22:09
  • Вопрос в том где описан сам синтаксис 1.0 , 0.001? – batqr Sep 29 '17 at 22:11
  • Проверка на равенство при заданной точности – Nofate Sep 29 '17 at 22:12
  • Это не особенность конкретно Java, а вещественных чисел в двоичном представлении. – Nofate Sep 29 '17 at 22:13
  • 1
    Это не синтаксис и не способ записи числа. Это второй и третий параметры функции проверки равенства. – Nofate Sep 29 '17 at 22:23
  • Понятно. И синтаксис нашел- assertEquals(double expected, double actual, double delta) – batqr Sep 30 '17 at 08:54

0 Answers0