Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает Math.nextAfter для double? / 3 сообщений из 3, страница 1 из 1
01.06.2014, 15:44
    #38658020
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Math.nextAfter для double?
Что-то джавадок и результаты примеров никак не помогают мне понять как работает это метод - получаю какие-то массонские цифры непонятно откуда взявшиеся. Проясните ситуацию.
...
Рейтинг: 0 / 0
01.06.2014, 16:59
    #38658061
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Math.nextAfter для double?
Все молчат, давайте я погадаю.

Double не может представить любое число из множества вещественных чисел. На самом деле множество Double получается конечным. Вот nextAfter() и дает возможность определить следующее значение после указанного. Из-за лени проверял в консоли Rhino (JS на джаве который), но думаю, особых отличий от настоящей джавы быть не должно:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
js> java.lang.Math.nextAfter(1.0, 1.1)
1.0000000000000002
js> java.lang.Math.nextAfter(1.0000000000000002, 1.1)
1.0000000000000004
js> java.lang.Math.nextAfter(1.0000000000000004, 1.1)
1.0000000000000007
js> java.lang.Math.nextAfter(1.0000000000000007, 1.1)
1.0000000000000009
js> java.lang.Math.nextAfter(1.0000000000000009, 1.1)
1.000000000000001
js> a=1.0000000000000002
1.0000000000000002
js> a=1.0000000000000003
1.0000000000000002
js> a=1.0000000000000005
1.0000000000000004
js> a=1.0000000000000006
1.0000000000000007



Выводы из примера.
Значения, которые можно представить типом Double:
1.0000000000000002
1.0000000000000004
1.0000000000000007
1.0000000000000009

Значения, которые типом Double представить не получится
1.0000000000000003
1.0000000000000005
1.0000000000000006

Так как пользовался Rhino, вполне возможно, тут везде фигурирует Float, а не Double (лень искать чем они там пользуются), но это не важно. Принцип тот же.
Спасибо Math.nextAfter(), теперь я зачем-то знаю эти числа :).
...
Рейтинг: 0 / 0
01.06.2014, 23:06
    #38658166
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает Math.nextAfter для double?
Alexander A. Sak,

спасибо,похоже на правду
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает Math.nextAfter для double? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]