Skip to content

Commit ed62f44

Browse files
committed
Merge pull request #2939 from jld/randomfloat
Prevent random floats from occasionally being greater than 1.
2 parents fa882d4 + db34b5a commit ed62f44

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/libcore/rand.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,22 +94,22 @@ impl extensions for rng {
9494
(self.next() as u64 << 32) | self.next() as u64
9595
}
9696

97-
/// Return a random float
97+
/// Return a random float in the interval [0,1]
9898
fn gen_float() -> float {
9999
self.gen_f64() as float
100100
}
101101

102-
/// Return a random f32
102+
/// Return a random f32 in the interval [0,1]
103103
fn gen_f32() -> f32 {
104104
self.gen_f64() as f32
105105
}
106106

107-
/// Return a random f64
107+
/// Return a random f64 in the interval [0,1]
108108
fn gen_f64() -> f64 {
109109
let u1 = self.next() as f64;
110110
let u2 = self.next() as f64;
111111
let u3 = self.next() as f64;
112-
let scale = u32::max_value as f64;
112+
const scale : f64 = (u32::max_value as f64) + 1.0f64;
113113
ret ((u1 / scale + u2) / scale + u3) / scale;
114114
}
115115

0 commit comments

Comments
 (0)