package main import ( "fmt" "math" ) func main() { // NaN { var f float = float(math.NaN()) s := fmt.Sprintf("%f", f) fmt.Printf("[%s]\n", s) var f2 float _, err := fmt.Sscanf(s, "%f", &f2) fmt.Printf("%#v %f\n", err, f2) } // +Inf { var f float = float(math.Inf(1)) s := fmt.Sprintf("%f", f) fmt.Printf("[%s]\n", s) var f2 float _, err := fmt.Sscanf(s, "%f", &f2) fmt.Printf("%#v %f\n", err, f2) } // -Inf { var f float = float(math.Inf(-1)) s := fmt.Sprintf("%f", f) fmt.Printf("[%s]\n", s) var f2 float _, err := fmt.Sscanf(s, "%f", &f2) fmt.Printf("%#v %f\n", err, f2) } }