Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: lopata 25. 11. 2013, 12:21:53
-
Dobrý den,
zkouším si napsat jednoduchý program pro obchodování na burze.
Pro prostudování API jsem zjistil, že na vytvoření objednávky musím zadat číslo ve formátu INT.
Já ale používám float a nerozumím, proč to má být INT - zmizí mi desetinná čárka. Takhle se v tom ztracím a rád bych tomu převodu rozuměl.
Uměl by mi někdo vysvětlit princip a důvod?
Popř odkázat na nějaký materiál ke studiu?
-
INT je explicitní přesný datový typ, float je pouze přibližné číslo (s určitou přesností). Jelikož číslo objednávky musí být přesné (není vám jedno, jestli myslíte objednávku 2013000000150 a nebo 2013000000151), proto float je nepoužitelný.
Float se uchovává jako několik číslic (kolik jich je určuje přesnost) + exponent. Pokud byste měl float s počtem číslic menším jak 12, pak výše uvedené čísla jsou stejné a nelze je rozlišit, protože budou do floatu převedeny takto:
2,013 x 10^12
Zapik
-
Python
d = float(0.321213)
f = int(d)
print d
print f
vysledek:
0.321213
0
Nevim jak to mam prevest. Takto bych si akorat objednal nulu
-
Normálně mívá příslušné API definováno, že desetinná čísla se uvádějí např. na 4 desetinná místa a do INTu se píše číslo*10000. Tzn. když budeš chtít koupit 12,345 kusu akcie, tak pošleš objednávku na 123450.
-
Aha, díky za pomoc.
Už jsem to našel i přesně definované v dokumentaci, jen na jiném místě.
-
Zde jen doplnim - pravidlo 1. nikdy nepouzivat cisla v plovouci carce pro jakekoliv financni udaje, vypocty atd. pravidlo c. 2 vyjimky z pravidla 1 neexistuji:-)