Il existe deux divisions.
- La division entière. Ou division euclidienne.
- La division réelle.
7 divisé par 2 donne 3 dans le premier cas et 3.5 dans le second cas. (la division euclidienne donne 7 divisé par 2 égale 3 reste 1, pour être précis).
Par suite, il y a 3 sortes de langages de programmation:
- Les langages qui ont compris qu'il y avait un problème et qui ont explicitement deux opérateurs.
- Les langages typés qui font la division entière avec les entiers et la division réelle avec les nombres réels.
- Les langages qui n'ont rien compris et qui vous laisse dans la mouïse.
Tu peux être sûr que des tas de logiciels sont bugués car le programmeur croit faire une division alors qu'il fait l'autre.
Dans le second cas, celui des logiciels qui sélectionnent de façon implicite la division, il faut multiplier par 1.0 avant de diviser pour basculer dans les nombres à virgule, donc assortis de la division réelle. Sinon, il fait l'entière.
Comme awk est du genre à faire les choses implicitement, même si je ne me souviens plus de la division présente, il ne coûte rien de multiplier par 1,0.
D'ailleurs, awk est un sacré piège pour l'implicite entre le texte et les nombres. Je me suis déjà fait avoir plusieurs fois.






Répondre avec citation











Partager