[Python-ideas] Trigonometry in degrees
Steven D'Aprano
steve at pearwood.info
Fri Jun 8 07:49:42 EDT 2018
On Fri, Jun 08, 2018 at 10:53:34AM +0200, Adam Bartoš wrote:
> Wouldn't sin(45 * DEG) where DEG = 2 * math.pi / 360 be better that
> sind(45)? This way we woudn't have to introduce new functions. (The problem
> with nonexact results for nice angles is a separate issue.)
But that's not a separate issue, that's precisely one of the motives for
having dedicated trig functions for degrees.
sind(45) (or dsin(45), as I would prefer) could (in principle) return
the closest possible float to sqrt(2)/2, which sin(45*DEG) does not do:
py> DEG = 2 * math.pi / 360
py> math.sin(45*DEG) == math.sqrt(2)/2
False
Likewise, we'd expect cosd(90) to return zero, not something not-quite
zero:
py> math.cos(90*DEG)
6.123031769111886e-17
That's how it works in Julia:
julia> sind(45) == sqrt(2)/2
true
julia> cosd(90)
0.0
and I'd expect no less here. If we can't do that, there probably
wouldn't be much point in the exercise.
--
Steve
More information about the Python-ideas
mailing list