Dans la création de fonctions trigonométriques my_sind(d), my_cosd(d), my_tand(d), qui a utilisé un argument de degré plutôt qu'un radian et a fourni des réponses précises à des multiples de 90, j'ai remarqué que le résultat était parfois-0.0 plutôt que 0.0.
my_sind( 0.0) --> 0.0
my_sind(-0.0) --> -0.0
my_sind(180.0) --> -0.0
my_sind(360.0) --> 0.0
sin()et tan()retournent généralement le même résultat de signe zéro pour une entrée de signe zéro donnée. Il est logique quemy_sin() corresponde sin()à ces entrées.
my_sind( 0.0) alike sin( 0.0) --> 0.0
my_sind(-0.0) alike sin(-0.0) --> -0.0
La question est : pour quel nombre entiernon_zero_n doit / peut le résultat jamais revenir -0.0pour my_sind(180*non_zero_n), my_cosd(180*n + 180), my_tand(180*non_zero_n)?
Il est assez facile de coder donc ne f(-0.0)produit -0.0et n'en a plus besoin. Je me demande simplement s'il y a une raison de faire un autre f(x) retour -0.0pour un autre ( non nul ) xet l'importance d'assurer ce signe.
Remarque: Il ne s'agit pas de savoir pourquoi 0.0vs -0.0se produit. Ce n'est pas pourquoi cos(machine_pi/4)ne revient pas 0.0. Il ne s'agit pas non plus de savoir comment contrôler la génération de 0.0ou -0.0. Je le vois mieux comme une question de conception.
sind(180), sind(-180), sind(360), sind(-360),...?