Golang Example - strconv ParseFloat function guide
- Admin
- Dec 31, 2023
- Golang Golang-examples
This blog post covers package strconv ParseFloat Function with examples in the Go Language.
golang strconv ParseFloat function
strconv is a standard inbuilt package in go language that provides various function implementations for converting a string to types into an int, float, boolean etc..
String to float is a common task of a programmer during development
ParseFloat is an inbuilt function, converts a String value to a floating number
You can check official documentation is here🔗
Here is the syntax of this function
func ParseFloat(inputstring string, bitSize int) (float64, error)
Argument list
inputstring is a numeric floating number represented in string bitSize is int type argument of precision value. It can be 32 for float32 or 64 for float64
Return type This function always returns two values. The float64 value is returned which contains a floating number.we can convert to float32 value if required. the error is returned with *NumError value if unable to convert a string to a floating number
function usage - success and error cases
Following are various uses cases of converting a string to floating types In the below code, ParseFloat() function takes a string and convert it to a floating number with given precision of 64.
For Conversion, 64bits are considered. Go language uses IEEE_754 binary format🔗 for storing floating numbers Returned floating number of type float64 and error-nil is returned.
floatNumb, err := strconv.ParseFloat("123.3412312312", 64)
fmt.Println(floatNumb)
fmt.Println(reflect.TypeOf(floatNumb))
fmt.Println(err)
Output:
123.3412312312
float64
<nil>
Now we will see changing precision value from 64 to 32
floatNumb, err := strconv.ParseFloat("123.3412312312", 32)
fmt.Println(floatNumb)
fmt.Println(reflect.TypeOf(floatNumb))
fmt.Println(err)
output:
123.34123229980469
float64
<nil>
The below example gives an error - strconv.ParseFloat: parsing “abc”: invalid syntax when given input string is not numeric In this case, this function returns 0 value of type float64 and err contains a description of an error
floatNumb, err := strconv.ParseFloat("abc", 32)
fmt.Println(floatNumb)
fmt.Println(reflect.TypeOf(floatNumb))
fmt.Println(err)
Output:
0
float64
strconv.ParseFloat: parsing "abc": invalid syntax
Converting string to float64 ParseFloat function golang Example program
Here is an example for numbers using parseFloat_.
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
floatString: = "12545.23"
floatNumb,
err: = strconv.ParseFloat("abc", 32)
fmt.Println(floatNumb)
fmt.Println(reflect.TypeOf(floatNumb))
fmt.Println(err)
if n1,
err: = strconv.ParseFloat(floatString, 32);err == nil {
fmt.Printf("%T, %v\n", n1, n1)
}
if n2,
err: = strconv.ParseFloat(floatString, 64);err == nil {
fmt.Printf("%T, %v\n", n2, n2)
}
}
Output:
0
float64
strconv.ParseFloat: parsing "abc": invalid syntax
float64, 12545.23046875
float64, 12545.23
Convert String to float64/float32 value in golang
ParseFloat() function returns float64 value by default. float32(float64value) function used to convert to float32 value Here is an program code for casting string to float64/float32
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
floatNumb, err: = strconv.ParseFloat("123.23", 32)
fmt.Println(floatNumb)
fmt.Println(reflect.TypeOf(floatNumb))
fmt.Println(err)
float32Value: = float32(floatNumb) // Convert to float 32
fmt.Println(float32Value)
fmt.Println(reflect.TypeOf(float32Value))
}
Output:
123.2300033569336
float64
<nil>
123.23
float32