TheDeveloperBlog.com

Home | Contact Us

CSharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript

Golang Math Module: math.Abs

This Go article uses the math module to perform mathematical computations. It uses math.Abs.

Math. Languages often have built-in math methods.

With Go we import the math module. This provides commonly-used methods like Abs and Pow.

Float64. Math methods here operate on the float64 numeric type. So we cannot use an int directly with them—we must cast it first. This requires some extra complexity.

Math.Abs. Let us begin with Abs. We import the math module in the import-statement at the top. Next we introduce the "negative" integer.

Then: We convert the "negative" number to a float64 and pass that to the math.Abs method. This returns a positive number.

Based on:

Golang 1.4

Golang program that uses math.Abs, float64

package main

import (
    "fmt"
    "math"
)

func main() {
    negative := -10
    fmt.Println(negative)
    // Use math.Abs to convert to a positive number.
    // ... We first convert to a float64.
    result := math.Abs(float64(negative))
    fmt.Println(result)
}

Output

-10
10

Pow, compute exponents. Pow raises one number to another. Here we compute the cube of 2, which is 8. We can also square numbers (with a second argument of 2) or use higher powers.

Golang program that uses math.Pow

package main

import (
    "fmt"
    "math"
)

func main() {
    // This can handle ints.
    result := math.Pow(2, 3)
    fmt.Println(result)
}

Output

8

Max, Min. The math.Max and math.Min methods both receive two float64 values. Max returns the higher of the two. Min returns the lower.

Note: If both values are equal, the result is that value. A separate comparison must determine this case.

Golang program that uses Max, Min

package main

import (
    "fmt"
    "math"
)

func main() {
    small := float64(3)
    large := float64(40)

    // Get the larger of the two numbers.
    max := math.Max(small, large)
    fmt.Println(max)

    // Get the smaller value.
    min := math.Min(small, large)
    fmt.Println(min)
}

Output

40
3

Many math methods are available in the math package. We can implement math methods directly, with imperative statements. But this often leads to unneeded, unwanted complexity.