[erlang-questions] sine and cosine with degree angles
Dmitry Belyaev
<>
Thu Aug 26 14:09:41 CEST 2010
I just wanted to show that the problem is not with degrees but with real
numbers.
However, you can make your own sin/cos for _integer_ degrees:
cos(0) -> 1;
cos(90) -> 0;
cos(-90) -> 0;
cos(180) -> -1;
cos(-180) -> -1;
cos(Deg) when Deg >= 180 orelse Deg <= -180 -> cos(Deg rem 360);
cos(Deg) -> math:cos(90 * math:pi() / 180).
Dmitry Belyaev
On 08/26/2010 03:57 PM, Roberto Ostinelli wrote:
> 2010/8/26 Dmitry Belyaev<>:
>
>> Suddenly
>> 1> math:sin(math:pi()).
>> 1.2246063538223773e-16
>>
>> It's floating point, it's always not completely accurate.
>>
>> Check for epsilon range:
>> -define(EPS, 1.0e-10).
>> if -?EPS< Value andalso Value< ?EPS -> 0; _ -> Value end.
>>
>> Dmitry Belyaev
>>
> i know it's about approximations. this is why i was asking if i'm
> missing an erlang function which takes degrees instead of radiants as
> input.
>
> thank you for your suggestion, i will use the EPS.
>
> cheers :)
>
> r.
>
>
More information about the erlang-questions
mailing list