The following GO program gives the error:
./fft.go:13: constant -6.28319 truncated to integer
./fft.go:13: cannot use -7 * k / N (type int) as type float64 in assignment
Program:
package main
import (
"math"
"fmt"
)
func main() {
fmt.Println("Hello world ",math.E)
var k, N int = 1, 10
var ans float64 = 0
var c float64 = (-2.0 * math.Pi * k) / N
x := make([]float64,N)
for i := 0; i < len(x); i++ {
x[i] = 1
}
ans = 0
for i := 0; i < N; i++ {
ans += x[i] * math.E
}
fmt.Println(ans)
}
Why cant I use an int
in a type of float64
?
Replace
by
To quote the spec:
Go uses static typing and doesn't automatically convert between numeric types. The reason is probably to avoid some errors. For instance, what value and what type should
float64(2.5) * int(2)
yield? Should the result beint(5)
?int(4)
?float64(5.0)
? In Go, this isn't an issue. The Go FAQ has more to say on this.@jnml points out that, in this case, the following is enough: