[python] chyba v kodu

RMiklos na pss.sk RMiklos na pss.sk
Čtvrtek Květen 3 17:49:14 CEST 2007


Mozno ze vysledok je iny ako ocakavas preto, lebo Python deli cele cisla 
celociselne

from math import *
def f(inp):
  print ((inp + 5) / 10)
  print (((inp + 5) / 10) * 65535)
  print int(ceil(((inp + 5) / 10) * 65535)) 
  return hex(int(ceil(((inp + 5) / 10) * 65535)))

potom
print f(-3)
dava toto
0
0
0x0

ale
print f(-3.0)
dava toto:
0.2
13107.0
13107
0x3333




Radek Machulka <radek.machulka na gmail.com> 
Sent by: python-bounces na py.cz
03.05.2007 17:22
Please respond to
Konference PyCZ <python na py.cz>


To
python na py.cz
cc

Subject
[python] chyba v kodu






Zdravim,
mam D/A prevodnik pracujici v rozsahu +-5V. Rizeni probiha prostrednictvim 

serioveho portu. Vlastni nastaveni napeti se provadi odeslanim 
hexadecimalniho cisla na prevodnik tak, ze:
0x0000 --> -5 V
0x8000 -->  0 V
0xFFFF -->   5 V,
mezi tim je zavislost linearni.
Vymyslel jsem kod:
'hex(int(ceil(((inp + 5) / 10) * 65535)))'.
Pracuje jak ma, jen v intervalu cca (-5 ; -4.735) mi to vraci nesmysly.
Nemam zdani cim by to mohlo byt, implementace stejnehoi kodu v jinych 
jazycich 
funguje spravne.
Predem dik za odpovedi
Radek

P.S.: 'inp' je vstupni promena funkce provadejici prepocet (pozadovane 
napeti) 
a je typu float.

-- 
Linux khoi 2.6.20-15-386 #2 Sun Apr 15 07:34:00 UTC 2007 i686 GNU/Linux
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python


Mgr. Ing. Roman MIKLÓ© 
Prvá stavebná sporiteµňa a.s. 
Bajkalská 30, P. O. Box 48 
829 48  Bratislava 25 
Tel.: +421/ 2 / 582 31 174 
Fax: +421/ 2 / 582 31 109 



Daląí informace o konferenci Python