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!