# Go: Compute absolute values

## Integers

Go has no built-in library function for computing the absolute value of an integer. It's simple to write your own.

```
func Abs(x int32) int32 {
if x < 0 {
return -x
}
return x
}
```

**Warning:** The smallest value of a signed integer type doesn't have a corresponding positive value. For example

`math.MinInt32`

equals -214748364**8**, while`math.MaxInt32`

equals 214748364**7**.

There's no good way to deal with this. In fact, `Abs`

returns a **negative value** in this case:

`fmt.Println(Abs(math.MinInt32)) // Output: -2147483648`

The C and Java standard libraries also behave like this.

## Floats

Use `math.Abs`

to compute the absolute value of a floating-point number:

```
// Abs returns the absolute value of x.
func Abs(x float64) float64
```

Note the special cases:

```
Abs(±Inf) = +Inf
Abs(NaN) = NaN
```

## Comments

Be the first to comment!