From f2650de369810867d2763e935ac0963c32ec420e Mon Sep 17 00:00:00 2001 From: Franklin van Nes Date: Wed, 15 Dec 2021 11:46:27 -0500 Subject: [PATCH] fix(clippy1): Updated code to test correctness clippy lint with approx_constant lint rule closes #888 --- exercises/clippy/clippy1.rs | 16 +++++++++++----- info.toml | 16 ++++++++-------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/exercises/clippy/clippy1.rs b/exercises/clippy/clippy1.rs index bdb5dd2..c5f84a9 100644 --- a/exercises/clippy/clippy1.rs +++ b/exercises/clippy/clippy1.rs @@ -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 + ) } diff --git a/info.toml b/info.toml index 95850c6..0c03def 100644 --- a/info.toml +++ b/info.toml @@ -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"