1
votes

Pourquoi les sorties sont-elles différentes si j'inclus des parenthèses

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


2 commentaires

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


3 Réponses :


9
votes

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.


0 commentaires

4
votes

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 .


0 commentaires

-1
votes

Assurez-vous que 1 ou 4 est double. Déclaration:

var numérateur = 1.0


0 commentaires