Non en C, float r = 1/2 donne 0.f :
— évaluation de 1/2, les deux opérandes sont des entiers, pas de cast, on applique la division entière, qui donne 0 ;
— affectation à un float, on cast implicitement 0 en 0.f.
Comme je l’ai dit fondamentalement je suis d’accord, mais il y a la convention adoptée qui joue. Là Python, qui est typé, est juste en train de foutre le bazar en faisant les choses à sa sauce.
[^] # Re: mode avocat du diable
Posté par nicolas . En réponse à la dépêche Python 3.2. Évalué à 2.
Non en C, float r = 1/2 donne 0.f :
— évaluation de 1/2, les deux opérandes sont des entiers, pas de cast, on applique la division entière, qui donne 0 ;
— affectation à un float, on cast implicitement 0 en 0.f.
Comme je l’ai dit fondamentalement je suis d’accord, mais il y a la convention adoptée qui joue. Là Python, qui est typé, est juste en train de foutre le bazar en faisant les choses à sa sauce.