Although x and y's possible types include float32, there are two steps in 
"var f float32 = x / y".
The first one is "x / y", for both default type of x and y is int, so the 
result is 1.
The second step is "var f float32 = 1". 
This is it.

If you change 5 to 5.0, or change 3 to 3.0,
then the first step will operate on two Float values, the intersection 
possible types of 5.0 and 3 (or 5 and 3.0) are float types.

On Thursday, September 8, 2016 at 11:31:55 PM UTC+8, Uvelichitel wrote:
>
>     package main 
>
>      import "fmt" 
>
>      func main() { 
>          const x, y = 5, 3 
>          var f float32 = x / y 
>          fmt.Println(f) 
>      } 
>
> output 
> 1 
> https://play.golang.org/p/FH1f793gWI 
> How this doesn't produce 1.66666 
> Would be thankful for explanation. 
> __ 
> Ilya Kostarev 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to