Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

avrunding av floats?

1,014 views
Skip to first unread message

Karin Lagesen

unread,
Jul 29, 2002, 3:48:12 AM7/29/02
to
Jeg har lett litt rundt, men jeg har enda ikke funnet noen måte
å få python til å avrunde floats for meg, fex til to desimaler.

Er det mulig, eller må jeg fortsette å gjøre det for hånd?

Karin
--
Karin Lagesen, ka...@ii.uib.no

Mater tua criceta fuit!

Hans Kristian Ruud

unread,
Jul 29, 2002, 4:06:37 AM7/29/02
to

Karin Lagesen wrote:

>Jeg har lett litt rundt, men jeg har enda ikke funnet noen måte
>å få python til å avrunde floats for meg, fex til to desimaler.
>
>Er det mulig, eller må jeg fortsette å gjøre det for hånd?
>

Kommer ikke på noe bedre enn

x = 2.718281828459045
>>> import string
>>> string.atof("%10.2f" % x)
2.72

>
>Karin
>
Hans Kristian

Karin Lagesen

unread,
Jul 29, 2002, 4:19:37 AM7/29/02
to

Funket fint det...:) Ikke at jeg forstod helt hva det gjør, men men.
Det er fint med python-scripts som bortimot genererer latex-tabeller
for en...:)

Hans Kristian Ruud

unread,
Jul 29, 2002, 7:20:43 AM7/29/02
to

Karin Lagesen wrote:

>In article <3D44F888...@inenco.no>, Hans Kristian Ruud wrote:
>
>>
>>Karin Lagesen wrote:
>>
>>>Jeg har lett litt rundt, men jeg har enda ikke funnet noen måte
>>>å få python til å avrunde floats for meg, fex til to desimaler.
>>>
>>>Er det mulig, eller må jeg fortsette å gjøre det for hånd?
>>>
>>Kommer ikke på noe bedre enn
>>
>>x = 2.718281828459045
>>
>>>>>import string
>>>>>string.atof("%10.2f" % x)
>>>>>
>>2.72
>>
>
>Funket fint det...:) Ikke at jeg forstod helt hva det gjør, men men.
>Det er fint med python-scripts som bortimot genererer latex-tabeller
>for en...:)
>
>

float -> string-representasjon av avrundet float ("%10.2f"% x ) -> float
(string->atof() )

>
>
>
>Karin
>
Hans Kristian

Sagdalon

unread,
Jul 29, 2002, 12:08:57 PM7/29/02
to
Hans Kristian Ruud wrote:
>
> x = 2.718281828459045
> >>> import string
> >>> string.atof("%10.2f" % x)
> 2.72

String modul metodene atoi(), atol() og atof() er utgått siden 2.0, bruk
int(), long() og float() dersom konvertering er nødvendig.
(Python Library Reference 4.1 string)

Men siden avrunding gjerne gjøres ved utskrift, holder det å:

In [36]: a = 1.1250

In [37]: print round(a, 2)
1.13
(2.1 Built-in Functions)

In [38]: print "%.2f" % a
1.12
(2.2.6.2 String Formatting Operations)

Syver Enstad

unread,
Jul 29, 2002, 12:17:44 PM7/29/02
to
Karin Lagesen <karin...@ii.uib.no> writes:

assert round(10.123, 2) == 10.12

assert round(10.125, 2) == 10.13

Ok...?

--

Vennlig hilsen

Syver Enstad

Igor V. Rafienko

unread,
Jul 30, 2002, 9:36:32 AM7/30/02
to
[ Syver Enstad ]

[ snip ]

> assert round(10.123, 2) == 10.12
>
> assert round(10.125, 2) == 10.13


For det første, hva var det du regnet med?

For det andre, det er ofte lite lurt å sammenligne flyttall for likhet
eksakt:

>>> 12.13 == 11.10 + 1.03
0
>>> 12.13 == 11.13 + 1
1
>>>

ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc

Syver Enstad

unread,
Jul 30, 2002, 10:52:31 AM7/30/02
to
ig...@ifi.uio.no (Igor V. Rafienko) writes:

> [ Syver Enstad ]
>
> [ snip ]
>
> > assert round(10.123, 2) == 10.12
> >
> > assert round(10.125, 2) == 10.13
>
>
> For det første, hva var det du regnet med?
>
> For det andre, det er ofte lite lurt å sammenligne flyttall for likhet
>
> eksakt:

Ja, ja, ja, personen spurte om hvordan man avrundet floats, jeg viste
hvordan man gjorde det, no big deal. Jeg har forstått at du vet at
representasjonen av flyttall ikke alltid er eksakt osv, jeg syntes
bare det var en grei måte å vise at tallene ble avrundet på "normal"
måte.

0 new messages