[python] Konverze řetězce na float

Jan Svec honza na py.cz
Čtvrtek Květen 13 13:43:51 CEST 2004


Ahoj,
problem vyresite pocitacem, ktery misto binarni soustavy pouziva
desitkovou :) Proste 12.2 nikdy v pocitaci nezobrazite. Je to podobne
jako 1/3 v desitkove zobrazite take jako 0.3333333333, ale nikdy to neni
1/3. Zato pokud by byl pocitac s trojkovou soustavou, tak by to bylo
0.1. Jasne? Jinak pro konverzi retezce na float je nejlepsi
float('12.2'). Vice take na http://py.cz/Members/honza kde si najdete
tutorial Pythonu a jeden appendix se tomu venuje.

Honza


On Tue, 11 May 2004, Jan Fuchs 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.
>
> >>> import string
> >>> import modul
>
> >>> cislo = string.atof("12.2")
> >>> cislo
> 12.199999999999999
> >>> round(cislo, 2)
> 12.199999999999999
>
> >>> modul.string2float("12.2")
> řetězec: 12.2, číslo = 12.200000
> 12.199999999999999
>
> PyObject* string2float(PyObject* self, PyObject* args)
> {
>   char *s;
>
>   if(!PyArg_ParseTuple(args, "s", &s)) return NULL;
>
>   printf("řetězec: %s, číslo = %f\n", s, atof(s));
>
>   return Py_BuildValue("f", atof(s));
> }
>
> Dík za případné odpovědi.
>
>      S pozdravem Fuky
>
> --
>
> ####################################################################
> # Žádný program není bezchybný, dokonalý ani nejlepší, # Gnu.cz    #
> # to samé platí i o lidech a nejen o nich.             # Linux.cz  #
> #                                   -- Jan Fuchs --    # Debian.cz #
> ####################################################################
> # http://www.asu.cas.cz                           ICQ: 200 692 177 #
> ####################################################################
> _______________________________________________
> python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>

--
S pozdravem    .-------------------------.
Jan Svec       | Znate jazyk Python? NE? |
               | zkuste http://www.py.cz |
.--------------+-------------------------+
|            <honza na py.cz>               |
|     http://www.py.cz/Members/honza     |
|            honzas na jabber.cz            |
`----------------------------------------'



Další informace o konferenci Python