Dummerweise nimmt die Funktion aber keine Grad an sondern Radians. Daher werden die 90° mit einer nur begrenzt genauen Repräsentation von π multipliziert, was dann im Ergebnis eben nicht genau π/2 entspricht.
Richtig, aber so sollte eine
tand(x)
Funktion mit Argumenten in ° ja auch
nicht programmiert werden (tand ist eine de-facto Standardbezeichnung, sie zB
Matlab,
Scilab,
Octave oder
GNU Fortran.
Zuerst wird x modulo 360 reduziert, dann werden
exakte Werte 0,+1,Inf,-1 je nach Vielfachen von 45 zurückgeliefert, der Rest (bei geschickter Reduktion ist der im Bereich -45 < x < 45) wird halt mit Pi/180 multipliziert und dann mit
math.tan
weiter verarbeitet. In diesem Bereich sind selbst die Delphi-Funkionen genau genug (und es gibt keinen Pol/Infinity).