我正在开发一个数学函数,并希望在一定范围内的每个浮点值上测试其输出。我已经在 C++ 中完成了此操作,但现在我想将性能与 Java 进行比较。如何在 Java 中迭代所有浮点值?
在 C++ 中,我只是使用 unsigned int 迭代必要的范围,然后将其重新解释为浮点指针
float *x = reinterpret_cast<float*>(&i);
但是,这在 Java 中如何实现呢?最好尽快,因为我正在测试性能(没有字符串解决方案,谢谢:D)。如果没有快速的方法,我想我可以将其中的一百万个预先计算到一个数组中并迭代它们。但这会扰乱缓存性能,因此我认为使用随机数对我的情况会更好,尽管它不会完全达到所有值。
最佳答案
您可以使用Math.nextUp(float)
获取下一个 float 。
打印从 1 开始的接下来 100 个 float 的示例:
float n = 1f;
System.out.println(n);
for (int i = 0; i < 100; i++) {
n = Math.nextUp(n);
System.out.println(n);
}
关于java - 使用 Java 迭代所有浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52129125/