Floating point calculation problem
Schizoid Man
schiz_man at 21stcentury.com
Sat Feb 2 06:14:57 EST 2013
"Chris Angelico" <rosuav at gmail.com> wrote in message
news:mailman.1289.1359801291.2939.python-list at python.org...
> On Sat, Feb 2, 2013 at 9:27 PM, Schizoid Man <schiz_man at 21stcentury.com>
> wrote:
>> The quantity s is input with the following line: s = input("Enter s: ")
>>
>> To get rid of the compile error, I can cast this as a float: s =
>> float(input("Enter s: "))
>>
>> However, then the result returned by the method is wrong. Why does this
>> error occur in version 3.3.0 but not in 2.7.3? Why is the result
>> incorrect
>> when s is cast as a float (the casting is not required in 2.7.3)? How is
>> Python dynamically typed if I need to cast (in version 3.3.0 at least) to
>> get rid of the compile error?
>
> Did you use input() or raw_input() in 2.7.3? If the former, you were
> actually doing this:
>
> s = eval(input("Enter s: "))
>
> That's extremely dangerous and inadvisable, so it's better to go with
> 3.3 or the raw_input function.
Thanks for the reply. You're right - even in 2.7.3 if I toggle between
float(input(x)) and input(x), the result of the calculation changes. What
does the float cast do exactly?
> Passing it through float() is, most likely, the right way to do this.
> But what do you mean by "the result... is wrong"? That's the bit to
> look into.
Scratch that, I'm not sure which result is right now, so need to look at the
full calculations in details. What would be the difference between
raw_input() and float(input())?
Thanks again.
More information about the Python-list
mailing list