HomeSearch | ## Golang Math Module: math.Abs, PowPerform mathematical computations with the math module. Call math.Abs and math.Pow. | |

## 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.
| 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.
| 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 | |

## Floor.The floor is beneath us. With math.Floor, a number with a fractional part is always reduced so the fractional part does not exist. Both negative and positive numbers are reduced. | Golang program that uses math.Floor
package main
import (
"fmt"
"math"
)
func main() {
value1 := 1.23
fmt.Println(value1)
fmt.Println(math.Floor(value1))
value2 := 2.99
fmt.Println(value2)
fmt.Println(math.Floor(value2))
value3 := -1.1
fmt.Println(value3)
fmt.Println(math.Floor(value3))
}
Output
1.23
1
2.99
2
-1.1
-2 | |

## Signbit.This math method returns a bool. If the number is negative (has a sign bit) then Signbit returns true. For positive numbers, it returns false. | Golang program that uses math.Signbit
package main
import (
"fmt"
"math"
)
func main() {
value1 := float64(1)
negative := math.Signbit(value1)
fmt.Println(negative)
value2 := float64(-1)
negative = math.Signbit(value2)
fmt.Println(negative)
value3 := float64(0)
negative = math.Signbit(value3)
fmt.Println(negative)
}
Output
false
true
false | |

## Odd, even.An int has a parity: this is whether it is odd or even. To compute parity, we use a modulo division. We can define "odd" as "not even."Odd, Even | ||

## Fibonacci.In the Fibonacci sequence, each number is equal to the preceding two numbers. This sequence occurs often in the natural world. It has many uses.Fibonacci | ||

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

Home Dot Net Perls | © 2007-2019 Sam Allen. All rights reserved. Written by Sam Allen, info@dotnetperls.com. |