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

`pub struct OpenClosed01;`

## Expand description

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

, i.e. including 1 but not 0.

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

. For `f32`

the 24 most significant random bits of a `u32`

are used and for `f64`

the
53 most significant bits of a `u64`

are used. The conversion uses the
multiplicative method.

See also: `Standard`

which samples from `[0, 1)`

, `Open01`

which samples from `(0, 1)`

and `Uniform`

which samples from arbitrary
ranges.

# Example

```
use rand::{thread_rng, Rng};
use rand::distributions::OpenClosed01;
let val: f32 = thread_rng().sample(OpenClosed01);
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 OpenClosed01

### impl Send for OpenClosed01

### impl Sync for OpenClosed01

### impl Unpin for OpenClosed01

### impl UnwindSafe for OpenClosed01

## Blanket Implementations

Mutably borrows from an owned value. Read more