fix(clippy1): Updated code to test correctness clippy lint with approx_constant lint rule

closes #888
This commit is contained in:
Franklin van Nes 2021-12-15 11:46:27 -05:00
parent acaee79994
commit f2650de369
2 changed files with 19 additions and 13 deletions

View File

@ -8,10 +8,16 @@
// I AM NOT DONE
use std::f32;
fn main() {
let x = 1.2331f64;
let y = 1.2332f64;
if y != x {
println!("Success!");
}
let pi = 3.14f32;
let radius = 5.00f32;
let area = pi * f32::powi(radius, 2);
println!(
"The area of a circle with radius {:.2} is {:.5}!",
radius, area
)
}

View File

@ -906,15 +906,15 @@ name = "clippy1"
path = "exercises/clippy/clippy1.rs"
mode = "clippy"
hint = """
Not every floating point value can be represented exactly in binary values in
memory. Take a look at the description of
https://doc.rust-lang.org/stable/std/primitive.f32.html
When using the binary compare operators with floating points you won't compare
the floating point values but the binary representation in memory. This is
usually not what you would like to do.
Rust stores the highest precision version of any long or inifinite precision
mathematical constants in the rust standard library.
https://doc.rust-lang.org/stable/std/f32/consts/index.html
We may be tempted to use our own approximations for certain mathematical constants,
but clippy recognizes those imprecise mathematical constants as a source of
potential error.
See the suggestions of the clippy warning in compile output and use the
machine epsilon value...
https://doc.rust-lang.org/stable/std/primitive.f32.html#associatedconstant.EPSILON"""
appropriate replacement constant from std::f32::consts..."""
[[exercises]]
name = "clippy2"