round function problem
bokr at oz.net
Wed Sep 7 08:57:10 CEST 2005
On Tue, 06 Sep 2005 09:27:48 +0200, mg <mg.mailing-list at laposte.net> wrote:
>We try to white scripts with Pyrhon 2.4 for an acoustic simulation and
>we wrote these follow lines :
>c = 340
340 is an integer, which is different from 340.
>i =j=k= 1
>sum_ = 23
also an integer
>table = 
>freq = round((c/2*(sum_)**0.5),2)
c/2 is integer/integer, which is not the same as c/2.0
rules all-integer arimetic generally produces integer results,
so (unless you import division from __future__) pay attention or
write your constants with decimal points even if the values are exact integers.
>>> from __future__ import division
>print i,j,k,' freq',freq
>for item in table: print item
>The problem is simple. The function 'round' allow to obtain the value
>with the specified number of digits after the ",". Then, when the
>variable 'freq' is printed, there is no problem; but when freq is set in
>the table and the table printed, all the digits are come back.
>Is it a bug or a control behavour ? I don't understand ?!?!?!?!...
Others have pointed out the output formatting and binary representation
problems behind your question, but I thought you might not realize the above.
More information about the Python-list