Чи може число 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