Floating point calculation problem

Schizoid Man schiz_man at 21stcentury.com
Sat Feb 2 12:14:57 CET 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