We can calculate the absolute value of a number using the abs()
method. We have to specify the numeric type before we call the abs method, for example, if we want a 32-bit signed integer we need to put i32 after the number.
This tutorial will go through how to calculate the absolute value of a numeric value in Rust with code examples.
Example #1: Absolute Value of a Signed Integer
Let’s look at an example where we want to calculate the absolute value of an integer:
fn main() { let num = -4 let abs_num = num.abs(); println!("{}", abs_num); }
In the above code, we define the number and then call the abs() method. Let’s run the code to see what happens:
error[E0689]: can't call method `abs` on ambiguous numeric type `{integer}` --> src/main.rs:3:23 | 3 | let abs_num = num.abs(); | ^^^ | help: you must specify a type for this binding, like `i32` | 2 | let num: i32 = -4; | ~~~~~~~~
The error occurs because we did not define the specific numeric type. We need to put an i32 after the number so that Rust knows the number is a 32-bit signed integer. Let’s look at the revised code:
fn main() { let num = -4i32 let abs_num = num.abs(); println!("{}", abs_num); }
Let’s run the code to see the result:
4
We successfully calculated the absolute value of -4, which is 4
The absolute method abs() is an available method for most numeric types.
Example #2: Absolute Value of a Signed Float
Let’s look at an example where we want to calculate the absolute value of a floating point. We need to put an f32 after the number so that Rust knows the number is a 32-bit signed float.
fn main() { let num = -3.4f32; let abs_num = num.abs(); println!("{}", abs_num); }
Let’s run the code to see the result:
3.4
We successfully calculated the absolute value of -3.4, which is 3.4.
Summary
Congratulations on reading to the end of this tutorial! For further reading on Rust, go to the articles:
- How to Concatenate Strings in Rust
- How to Do Bubble Sort in Rust
- What is the Difference Between iter, into_iter and iter_mut in Rust?
Have fun and happy researching!
Suf is a research scientist at Moogsoft, specializing in Natural Language Processing and Complex Networks. Previously he was a Postdoctoral Research Fellow in Data Science working on adaptations of cutting-edge physics analysis techniques to data-intensive problems in industry. In another life, he was an experimental particle physicist working on the ATLAS Experiment of the Large Hadron Collider. His passion is to share his experience as an academic moving into industry while continuing to pursue research. Find out more about the creator of the Research Scientist Pod here and sign up to the mailing list here!