On 4/7/2010 12:15 AM, Patrick Maupin wrote:
On Apr 6, 11:10 pm, Patrick Maupin<pmau...@gmail.com> wrote:
On Apr 6, 11:04 pm, Patrick Maupin<pmau...@gmail.com> wrote:
On Apr 6, 10:16 pm, monkeys paw<mon...@joemoney.net> wrote:
I have the following acre meter which works for integers,
how do i convert this to float? I tried
return float ((208.0 * 208.0) * n)
>>> def s(n):
... return lambda x: (208 * 208) * n
...
>>> f = s(1)
>>> f(1)
43264
>>> 208 * 208
43264
>>> f(.25)
43264
Not sure why you are returning a lambda (which is just a function that
does not have a name) from an outer function.
A function that does this multiplication would simply be:
def s(n):
return 208.0 * 208.0 * n
Regards,
Pat
I realized I didn't show the use. A bit different than what you were
doing:
def s(n):
... return 208.0 * 208.0 * n
...>>> s(1)
43264.0
s(0.5)
21632.0
s(3)
129792.0
I'm not sure exactly what you mean by "acre meter" though; this
returns the number of square feet in 'n' acres.
Regards,
Pat
I should stop making a habit of responding to myself, BUT. This isn't
quite an acre in square feet. I just saw the 43xxx and assumed it
was, and then realized it couldn't be, because it wasn't divisible by
10. (I used to measure land with my grandfather with a 66 foot long
chain, and learned at an early age that an acre was 1 chain by 10
chains, or 66 * 66 * 10 = 43560 sqft.)
That's an exact number, and 208 is a poor approximation of its square
root.
Regards,
Pat
You are absolutely right Pat, so here is the correct equate which also
utilizes my original question of using floats in a lambda, perfectly...
g = lambda x: 208.71 * 208.71 * x
g(1)
43559.864100000006
but truly the easiest to remember is based on your chain:
g = lambda x: 660 * 66 * x
g(1)
43560
Now back to python...
--
http://mail.python.org/mailman/listinfo/python-list