How to Get an Absolute Value in Rust

by | Programming, Rust, Tips

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:

Have fun and happy researching!

Research Scientist at Moogsoft | + posts

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!