An **integer** is an immutable data type, so converting a **float** to an **int** is the most common operation. Before starting our main course, let’s see the float and integer data types.

**What is float in Golang?**

The **float data type** in **Golang** is used to store positive and negative numbers with a decimal point.

The **float data type** has two types of floating-point values:

Type | Size | Range |
---|---|---|

float32 |
32-bits | -3.4e+38 to 3.4e+38. |

float64 |
64-bits | -1.7e+308 to +1.7e+308. |

The default data type for float in Golang is **float64**. If you don’t specify the class, it will be **float64**.

**How to create a float variable in Go?**

To **create** a **float** **variable** in **Golang**, use the **var float_var_name float64** syntax. To create a float32 variable, use the **var float_var_name float32 **syntax.

**What is int in Golang?**

An integer is a numeric data type without a decimal point in Go. The integer data type has several versions: **int8**, **int16**, **int32, int64, uint8**, **uint16**, **uint32**, and **uint64**.

**Golang float to int**

To convert a **float** to **int** in **Golang,** use the **int() **function. The **int()** is a built-in function that accepts an argument and returns the integer representation of the input value.

When converting a floating point to an integer value, pass a float value to the int() function, and it returns an integer value.

```
package main
import (
"fmt"
"reflect"
)
func main() {
var floating_point float64 = 21.19
fmt.Println(floating_point)
fmt.Print("The data type is: ", reflect.TypeOf(floating_point), "\n")
var integer int = int(floating_point)
fmt.Println(integer)
fmt.Print("The data type is: ", reflect.TypeOf(integer), "\n")
}
```

**Output**

```
21.19
The data type is: float64
21
The data type is: int
```

In this example, we are declaring float64 value and printing the data type using reflect.TypeOf() function.

In the next step, an int() function was used to convert a float64 value to int and print its value and data type.

When converting a floating-point number to an integer, the fraction is discarded.

**Converting float to int with rounding numbers**

To round numbers while converting float to int, use **math.Round()** function. Apply the int() function to the result of math.Round() function, and it will convert to an integer.

```
package main
import (
"fmt"
"math"
"reflect"
)
func main() {
var floating_point float64 = 21.67
fmt.Println(floating_point)
fmt.Print("The data type is: ", reflect.TypeOf(floating_point), "\n")
var integer int = int(math.Round(floating_point))
fmt.Println(integer)
fmt.Print("The data type is: ", reflect.TypeOf(integer), "\n")
}
```

**Output**

```
21.67
The data type is: float64
22
The data type is: int
```

**Converting float to int with rounding up**

To round up numbers while converting float to int, use **math.Ceil()** function. Apply the **int()** function to the result of math.Ceil() function and it will convert to an integer.

```
package main
import (
"fmt"
"math"
"reflect"
)
func main() {
var floating_point float64 = 21.67
fmt.Println(floating_point)
fmt.Print("The data type is: ", reflect.TypeOf(floating_point), "\n")
var integer int = int(math.Ceil(floating_point))
fmt.Println(integer)
fmt.Print("The data type is: ", reflect.TypeOf(integer), "\n")
}
```

**Output**

```
21.67
The data type is: float64
22
The data type is: int
```

**Converting float to int with rounding down**

To round down numbers while converting float to int, use **math.Floor()** function. Apply the **int()** function to the result of **math.Floor()** function and it will convert to an integer.

```
package main
import (
"fmt"
"math"
"reflect"
)
func main() {
var floating_point float64 = 21.67
fmt.Println(floating_point)
fmt.Print("The data type is: ", reflect.TypeOf(floating_point), "\n")
var integer int = int(math.Floor(floating_point))
fmt.Println(integer)
fmt.Print("The data type is: ", reflect.TypeOf(integer), "\n")
}
```

**Output**

```
21.67
The data type is: float64
21
The data type is: int
```

**Final words**

The best way to convert a float to int in Golang, use the **int()** function.

To **round** **up** while **converting** a **float** to **int**, use the **math.Ceil()** function.

To **round** **down** while **converting** a **float** to **int**, use the **math.Floor()** function.

That’s it.

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Distributed and cloud computing and is an expert in Go Language.