[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