Bei der Erstellung trigonometrischen Funktionen my_sind(d)
, my_cosd(d)
, my_tand(d)
, dass ein gewisses Maß Argument , anstatt eine Radiant ein verwendet und genaue Antworten auf ein Vielfaches von 90 vorgesehen ist , bemerkte ich , dass das Ergebnis war manchmal -0.0
nicht 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()
und geben tan()
typischerweise das gleiche Vorzeichen-Null-Ergebnis für eine gegebene Vorzeichen-Null-Eingabe zurück. Es ist sinnvoll, dass für diese Eingaben my_sin()
übereinstimmen sollte sin()
.
my_sind( 0.0) alike sin( 0.0) --> 0.0
my_sind(-0.0) alike sin(-0.0) --> -0.0
Die Frage ist : für das, was ganze Zahl non_zero_n
sollte / kann das Ergebnis je zurückkehren -0.0
für my_sind(180*non_zero_n)
, my_cosd(180*n + 180)
, my_tand(180*non_zero_n)
?
Es ist einfach genug zu codieren, also nur f(-0.0)
produziert -0.0
und damit fertig. Einfach fragen, ob es einen Grund gibt, eine andere f(x)
Rendite -0.0
für eine andere ( ungleich Null ) x
zu erzielen, und wie wichtig es ist, dieses Zeichen zu versichern.
Hinweis: Dies ist keine Frage, warum 0.0
vs. -0.0
auftritt. Dies ist nicht der Grund, warum cos(machine_pi/4)
nicht zurückkehrt 0.0
. Dies ist auch keine Frage, wie die Erzeugung von 0.0
oder gesteuert werden kann -0.0
. Ich sehe es am besten als Designfrage.
sind(180), sind(-180), sind(360), sind(-360),...
?