python math problem
Gary Herron
gherron at digipen.edu
Fri Feb 15 14:47:33 EST 2013
On 02/15/2013 11:39 AM, Kene Meniru wrote:
> I am trying to calculate the coordinates at the end of a line. The length
> and angle of the line are given and I am using the following formula:
>
> x = (math.sin(math.radians(angle)) * length)
> y = (math.cos(math.radians(angle)) * length)
>
> The following are sample answers in the format (x, y) to the given
> length/angle values of the line:
>
> 120/0 = (0.0, 25.0)
> 120/89 = (24.9961923789, 0.436310160932)
> 120/90 = (25.0, 1.53075794228e-15)
> 120/91 = (24.9961923789, -0.436310160932)
>
> Why am I getting a string number instead of the expected answer for 120/90
> which should be (25.0, 0.0). This happens at all multiples of 90 (i.e. 180
> and 270)
>
Floating point calculations on a computer (ANY computer, and ANY
programming language) can *never* be expected to be exact! (Think about
1/3 , PI, and sqrt(2) for instance.) The values written out as
1.53075794228e-15
is the (scientific notation) representation of .00000000000000153075794228. Is that not close enough to zero for your purposes? (Or is it that you don't understand the 'e-15' portion of the output?)
--
Dr. Gary Herron
Department of Computer Science
DigiPen Institute of Technology
(425) 895-4418
More information about the Python-list
mailing list