# Struct rand::distributions::Open01 [−][src]

`pub struct Open01;`

## Expand description

A distribution to sample floating point numbers uniformly in the open
interval `(0, 1)`

, i.e. not including either endpoint.

All values that can be generated are of the form `n * ε + ε/2`

. For `f32`

the 23 most significant random bits of an `u32`

are used, for `f64`

52 from
an `u64`

. The conversion uses a transmute-based method.

See also: `Standard`

which samples from `[0, 1)`

, `OpenClosed01`

which samples from `(0, 1]`

and `Uniform`

which samples from arbitrary
ranges.

# Example

```
use rand::{thread_rng, Rng};
use rand::distributions::Open01;
let val: f32 = thread_rng().sample(Open01);
println!("f32 from (0, 1): {}", val);
```

## Trait Implementations

Generate a random value of `T`

, using `rng`

as the source of randomness.

Create an iterator that generates random values of `T`

, using `rng`

as
the source of randomness. Read more

Generate a random value of `T`

, using `rng`

as the source of randomness.

Create an iterator that generates random values of `T`

, using `rng`

as
the source of randomness. Read more

## Auto Trait Implementations

### impl RefUnwindSafe for Open01

### impl UnwindSafe for Open01

## Blanket Implementations

Mutably borrows from an owned value. Read more