Sin Cos

Post

Posted
Rating:
#1 (In Topic #723)
Trainee
 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.
Online now: No Back to the top

Post

Posted
Rating:
#2
Avatar
Enthusiast
GrayGhost is in the usergroup ‘Enthusiast’
 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?
Online now: No Back to the top

Post

Posted
Rating:
#3
Regular
vuott is in the usergroup ‘Regular’

mugwump said

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. "

Europaeus sum !

<COLOR color="#FF8000">Amare memorentes atque deflentes ad mortem silenter labimur.</COLOR>
Online now: No Back to the top

Post

Posted
Rating:
#4
Avatar
Regular
stevedee is in the usergroup ‘Regular’

mugwump said


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;

Code (gambas)

  1. myCosine = Cos(Rad(90))
…doesn't make much sense.
It would be better to code something like this;

Code (gambas)

  1. myCosine = Round(Cos(Rad(90)),-10)

I hope this helps.


Edit; sorry, forgot the Rad
Online now: No Back to the top

Post

Posted
Rating:
#5
Trainee
 OK Thanks for that .
I need to brush up on my maths!
Online now: No Back to the top
1 guest and 0 members have just viewed this.