[python] Konverze řetězce na float

Radek Kanovsky rk na dat.cz
Úterý Květen 11 11:14:15 CEST 2004


On Tue, May 11, 2004 at 11:09:15AM +0200, Radek Kanovsky wrote:

> > Ahoj,
> > můžu nějakým způsobem docílit správného převedení řetězce např. "12.2"
> > na číslo float 12.2? Zkoušel jsem to dvěmi následujícími způsoby, ale
> > ani jeden nefunguje dle mých představ. Lépe řečeno, oba narazí na problém
> > ve stejném místě a JÁ nevím jak to obejít.
> > 
> > >>> cislo = string.atof("12.2")
> > >>> cislo
> > 12.199999999999999
> > >>> round(cislo, 2)
> > 12.199999999999999
> 
> To neni zalezitost Pythonu, ale reprezentace realnych cisel v dvojkove
> soustave v beznych pocitacich. 12.2 ma v dvojkove soustave nekonecny
> rozvoj, proto jej nelze presne uchovat v pameti jako float.

Vice o problemu napr. zde http://www.python.org/peps/pep-0327.html

Radek Kaňovský



Další informace o konferenci Python