hello forum, simple question why i cannot reach one in this simple loop ?
thx Julien.
fn main() {
let mut ct: f32 = 0.0;
while ct <= 1.0 {
print!("-->{}\n", ct);
ct += 0.1;
}
}
(Playground)
Output:
-->0
-->0.1
-->0.2
-->0.3
-->0.4
-->0.5
-->0.6
-->0.70000005
-->0.8000001
-->0.9000001
Errors:
Compiling playground v0.0.1 (/playground)
Finished dev [unoptimized + debuginfo] target(s) in 1.70s
Running `target/debug/playground`
Roundoff error. If you step by an integer times a power of two it will work as you'd expect, e.g. stepping by 0.125.
The same thing happens in any programming language, BTW.
3 Likes
thanks ^^
quick overview:
ZiCog
5
"What Every Computer Scientist Should Know About Floating-Point Arithmetic" :
1 Like
system
Closed
6
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.