Page 1 of 1

Sin Cos

Posted: Tuesday 10th August 2021 6:21pm
by mugwump
in gambas playground i typed:-


dim a as float
dim b as float
a=rad(90)

print sin(a)
print cos(a)

result:-

1
6.12323399573677E-17

What is wrong here?

Thanks.

Re: Sin Cos

Posted: Wednesday 11th August 2021 1:31am
by grayghost4
looks correct to me

rad(90) is equal to 1/2 of pi = 3.14/2 = 1.5707

a = 1.5707 not 90 deg.

the rest is simple math.

what is it you are trying to do?

Re: Sin Cos

Posted: Wednesday 11th August 2021 2:26pm
by vuott
mugwump wrote: Tuesday 10th August 2021 6:21pm print cos(a)

6.12323399573677E-17
Today Gianluigi (a member of italian forum) asked Minisini about the problem of this result.
Minisini replied:

" This is normal. Rad() uses the Pi constant, and floating point numbers are never 100% accurate. "

Re: Sin Cos

Posted: Wednesday 11th August 2021 5:18pm
by stevedee
mugwump wrote: Tuesday 10th August 2021 6:21pm
print cos(a)

result:-
6.12323399573677E-17

What is wrong here?
As has already been stated, these kind of rounding errors are to be expected on a digital computer.

3 points:-
- you will get the same result if you perform the same calculations in LibreOffice Calc (...on the same computer)
- the error is very, very small
- using something like;
myCosine = Cos(Rad(90)) 
...doesn't make much sense.
It would be better to code something like this;
myCosine = Round(Cos(Rad(90)),-10)
I hope this helps.


Edit; sorry, forgot the Rad

Re: Sin Cos

Posted: Thursday 12th August 2021 9:50am
by mugwump
OK Thanks for that .
I need to brush up on my maths!