Welcome To Golang By Example

Conversion between float32 and float64 in Go (Golang)

Overview

Golang requires explicit conversion to convert from one type to the other. Conversion between float32 and float64 data type requires explicit type conversion. Below is the syntax for that.

{destination_type}(some_value) 

This converts some_value to the destination_type.

float32 to float64

var a float32 = 12
var b float64 = float64(a)

Or

b := float64(a)

Below is working program for the same

package main
import "fmt"
func main() {
    var a float32 = 12.0
    var b float64 = float64(a)
    fmt.Printf("Underlying Type of b: %T\n", b)

    b2 := float64(a)
    fmt.Printf("Underlying Type of b2: %T\n", b2)
}

Output

Underlying Type of b: float64
Underlying Type of b2: float64

float64 to float32

var a float64 = 12
var b float32 = float32(a)

or

b := float32(a)

Below is the working program for the same. 

package main

import "fmt"

func main() {
	var a float64 = 12.0
	var b float32 = float32(a)

	fmt.Printf("Underlying Type of b: %T\n", b)

	b2 := float32(a)
	fmt.Printf("Underlying Type of b2: %T\n", b2)
}

In case we directly assign a float64 value to a float32 or vice versa without explicit conversion, it will raise a compilation error. 

cannot use a (type float64) as type float32 in assignment

Also, check out our Golang advance tutorial Series – Golang Advance Tutorial