Может ли число с плавающей запятой IEEE-754 <1 (т. Е. Созданное с помощью генератора случайных чисел, который генерирует число> = 0,0 и <1,0) когда-либо умножаться на некоторое целое число (в форме с плавающей запятой), чтобы получить число, равное или большее, чем что целое число из-за округления?
т.е.
double r = random() ; // generates a floating point number in [0, 1)
double n = some_int ;
if (n * r >= n) {
print 'Rounding Happened' ;
}
Это может быть эквивалентно утверждению, что существуют N и R, такие, что если R является наибольшим числом, меньшим 1, которое может быть представлено в IEEE-754, то N * R> = N (где * и> = являются подходящими IEEE- 754 оператора)
Это вытекает из этого вопроса, основанного на этой документации и случайной функции postgresql