Salut, je me demande simplement pourquoi
System.out.println((double) (1/4));
imprime 0.25
mais
System.out.println((double) 1/4);
imprime 0.0
3 Réponses :
Le premier caste d'abord 1 en double , puis effectue une division en virgule flottante.
Ce dernier effectue d'abord (1/4) comme division entière et ensuite seulement convertit le résultat en double .
La règle en Java est que si les deux opérandes sont des entiers, l'opération est une division entière; si l'un des opérandes est flottant, c'est une division en virgule flottante.
L'expression (double) 1/4 est égale à ((double) 1) / 4 . Autrement dit, il convertit la valeur entière 1 en valeur à virgule flottante 1.0 , et divise cette valeur en virgule flottante par 4 , ce qui donne 0,25 .
L'expression (double) (1/4) effectue d'abord la division, en utilisant des entiers. Cela se traduit par la valeur entière 0 qui est ensuite convertie en double .
Assurez-vous que 1 ou 4 est double. Déclaration:
var numérateur = 1.0
avec les parenthèses, il exécute d'abord 1/4, les deux étant des entiers, puis vous transtypez le résultat en double. sans eux, vous lancez d'abord 1 en double, puis exécutez la division
Division des nombres entiers