Перебор всех значений с плавающей запятой с помощью Java - PullRequest
0 голосов
/ 01 сентября 2018

Я занимаюсь разработкой математической функции и хотел бы проверить ее вывод при каждом значении с плавающей запятой в пределах диапазона. Я уже сделал это в C ++, но теперь я хочу сравнить производительность с Java. Как перебрать все значения с плавающей точкой в ​​Java?

В C ++ я просто перебираю необходимый диапазон с беззнаковым целым числом, затем интерпретирую его как указатель с плавающей точкой

float *x = reinterpret_cast<float*>(&i);

Однако, как это можно сделать на Java? Желательно быстро, так как я тестирую производительность (спасибо String нет решений: D). Если нет быстрого пути, я думаю, я мог бы просто предварительно вычислить миллион из них в массив и выполнить их. Но это может испортить производительность кеша, поэтому я думаю, что использование случайных чисел было бы лучше для моего случая, хотя оно не вполне соответствует всем значениям.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Вы можете использовать Math.nextUp(float) для получения следующего числа с плавающей точкой.

Пример печати следующих 100 чисел, начиная с 1:

float n = 1f;
System.out.println(n);

for (int i = 0; i < 100; i++) {
    n = Math.nextUp(n);
    System.out.println(n);
}
0 голосов
/ 01 сентября 2018

В Java вы можете использовать метод Float.intBitsToFloat(int):

for (int i = iMin; i < iMax; i++) {
    float f = Float.intBitsToFloat(i);
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...