Я издеваюсь над статическим методом random()
класса Java в Java, чтобы лучше протестировать метод, основанный на генерации случайных чисел. Код, я использую выглядит следующим образом:Имитировать наибольшее значение Math.random()
@Mock
public double random() {
return 1.0 - Double.MIN_VALUE;
}
Это моя попытка достичь значение как можно ближе к 1,0, как это возможно, не равны. (например, 0.999999999999 ...)
Однако, когда я вызываю посмеянный метод Math.random()
, я всегда получаю 1.0 в качестве значения. Это почти так, как будто вычитание Double.MIN_VALUE
не влияет на 1.0 вообще.
Почему 1.0 - Double.MIN_VALUE
результат 1.0 и как я могу имитировать максимально возможное значение Math.random()
?
См. Также http://stackoverflow.com/questions/7288334/increase-a-double-to-the-next-closest-value – Raedwald
См. Также http: // stackoverflow .com/questions/155378/how-to-alter-a-float-by-its-smallest-increment-or-close-to-it – Raedwald
Возможный дубликат [Java: Math.random() Max Value (double just less чем 1)] (http://stackoverflow.com/questions/15736885/java-math-random-max-value-double-just-less-than-1) – Raedwald