Documentación offline PHP master

Random\Randomizer::nextFloat

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

Random\Randomizer::nextFloat

Devuelve un float seleccionado del intervalo abierto a la derecha [0.0, 1.0)

Descripción#

public Random\Randomizer::nextFloat(): float
```php

Devuelve un float seleccionado de manera uniforme y equidistribuida del intervalo abierto a la derecha de `0.0` hasta, pero sin incluir, `1.0`.

La probabilidad de que un float devuelto esté en un subintervalo dado abierto a la derecha es proporcional al tamaño del subintervalo. Esto significa que la probabilidad de que un float sea *menor que* `0.5` es del 50 %, lo cual es igual a la probabilidad de que un float sea *al menos* `0.5`. Del mismo modo, la probabilidad de que un float esté en el intervalo abierto a la derecha de `0.2` hasta, pero sin incluir, `0.25` es exactamente del 5 %.

Esta propiedad permite utilizar fácilmente Random\Randomizer::nextFloat para generar un bool aleatorio con una probabilidad dada verificando si el float devuelto es *menor que* una probabilidad dada.

> [!NOTE]
> El dominio de los floats devueltos por Random\Randomizer::nextFloat es idéntico al de `Randomizer::getFloat(0.0, 1.0, IntervalBoundary::ClosedOpen)`.
>
> La implementación interna de Random\Randomizer::nextFloat es más eficiente.

> [!CAUTION]
> Escalar el valor devuelto a un intervalo diferente utilizando la multiplicación o la adición (una transformación afín) podría resultar en un sesgo en el valor resultante, ya que los floats no son igualmente densos a lo largo de la línea de los números. Como no todos los valores pueden ser representados exactamente por un float, el resultado de la transformación afín podría también resultar en valores fuera del intervalo solicitado debido a redondeos implícitos. Una [explicación detallada](#random-randomizer.getfloat.affine-transformation) de los problemas con la transformación afín se proporciona en la documentación para Random\Randomizer::getFloat.
>
> Utilizar Random\Randomizer::getFloat para generar un float aleatorio en un intervalo arbitrario. Utilizar Random\Randomizer::getInt para generar un integer aleatorio en un intervalo arbitrario.

## Parámetros

Esta función no contiene ningún parámetro.

## Valores devueltos

Un float seleccionado de manera uniforme en el intervalo abierto a la derecha (`IntervalBoundary::ClosedOpen`) \[0.0, 1.0). `0.0` es un valor de retorno posible, `1.0` no lo es.

## Errores/Excepciones

- Cualquier `Throwable` lanzado por el método Random\Engine::generate del [`Random\Randomizer::$engine`](#random-randomizer.props.engine) subyacente.

## Ejemplos

Ejemplo de Random\Randomizer::nextFloat
nextFloat() < $chance; echo ($bool ? "You won" : "You lost"), "\n"; ?>
Resultado del ejemplo anterior es similar a:

    You won

Escalado incorrecto utilizando una transformación afín
nextFloat() * ($max - $min) + $min); // Correcto: // $randomizer->getFloat($min, $max, \Random\IntervalBoundary::ClosedOpen); ?>

```php

El ejemplo anterior mostrará:

Wrong scaling: 4.5

Véase también#

Random\Randomizer::getFloat