gocommand-line-argumentsfloating-point-conversion

how can I force division to be floating point in Go?


I have the following code snippet:

package main

import("fmt";"flag")

func main() {
    var a = flag.Int("a",0,"divident")
    var b = flag.Int("b",1,"divisor")
    flag.Parse()

    fmt.Printf("%f",*a / *b )
}

For -a 3 and -b 2 command line arguments, the output is: %!f(int=1)

What is the best / most elegant way to force this division to be floating point?


Solution

  • There are no implicit type casts for variables in Go, so you must convert to float:

    fmt.Printf("%f", float32(a)/float32(b))
    

    or

    fmt.Printf("%f", float32(a/b))
    

    Depending upon what you want. Also check out float64 -- if that floats your boat.