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.0
pour 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.0
et n'en a plus besoin. Je me demande simplement s'il y a une raison de faire un autre f(x)
retour -0.0
pour un autre ( non nul ) x
et l'importance d'assurer ce signe.
Remarque: Il ne s'agit pas de savoir pourquoi 0.0
vs -0.0
se 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.0
ou -0.0
. Je le vois mieux comme une question de conception.
sind(180), sind(-180), sind(360), sind(-360),...
?