¿Se puede multiplicar un número de punto flotante IEEE-754 <1 (es decir, generado con un generador de números aleatorios que genera un número> = 0.0 y <1.0) por algún número entero (en forma de punto flotante) para obtener un número igual o mayor que ese entero debido al redondeo?
es decir
double r = random() ; // generates a floating point number in [0, 1)
double n = some_int ;
if (n * r >= n) {
print 'Rounding Happened' ;
}
Esto podría ser equivalente a decir que existe un N y R tales que si R es el número más grande menor que 1 que puede representarse en IEEE-754, entonces N * R> = N (donde * y> = son IEEE- apropiados 754 operadores)
Esto viene de esta pregunta basada en esta documentación y la función aleatoria postgresql