L'expression 3 / 10
est une expression constante non typée. La spécification le dit à propos des expressions constantes
si les opérandes d'une opération binaire sont différents types de constantes non typées, l'opération et, pour les opérations non booléennes, le résultat utilisent le genre qui apparaît plus loin dans cette liste: entier, rune, virgule flottante, complexe.
Étant donné que 3
et 10
sont des constantes entières non typées, la valeur de l'expression est un entier non typé ( 0
dans ce cas).
L'un des opérandes doit être une constante à virgule flottante pour que le résultat soit une constante à virgule flottante. Les expressions suivantes correspondent à la constante à virgule flottante non typée 0.3
:
3.0 / 10.0
3.0 / 10
3 / 10.0
Il est également possible d'utiliser des constantes typées. Les expressions suivantes évaluent à la float64
constante 0.3
:
float64(3) / float64(10)
float64(3) / 10
3 / float64(10)
L'impression de l'une des expressions ci-dessus s'imprimera 0.3
. Par exemple, fmt.Println(3.0 / 10)
imprime 0.3
.
fmt.Println(float64(3) / float64(10))
donne0.3
.Comme mentionné par @Cerise et selon les spécifications
Dans ce cas, seul le premier opérande doit être une virgule flottante.
fmt.Println(3.0/10) fmt.Println(float64(3)/10) // 0.3 0.3
Exemple
la source