Float to int

Ludek
Příspěvky: 291
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Float to int

Příspěvek od Ludek » 15 bře 2020, 07:42

Zdravím, mám dotaz amatéra :
mám proměnnou float například :
float x = 3,14 a potřebuji získat z toho dvě proměnné :
int a = 3
int b = 14
a nějak mi to nejde...

jankop
Příspěvky: 1030
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Float to int

Příspěvek od jankop » 15 bře 2020, 10:03

Tak věz amatére, že v programovacím jazyce Wiring se nepoužívá jako oddělovač desetinné části reálného čísla čárka nýbrž tečka.

Kód: Vybrat vše

float x=3.14;
int a;
int b;
a=(int)x;
b=(int)(100*(x-(float)a));

Ludek
Příspěvky: 291
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Float to int

Příspěvek od Ludek » 15 bře 2020, 10:33

Hele Profíku :-) jasně, to jsem se jen upsal při psaní příkladu, toto vím. :-)
Ale jinak MOC díky, šlape to.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Float to int

Příspěvek od KamilV » 15 bře 2020, 22:12

"Šlape to" do chvíle, než bude float x = 3.1415 ...
Opravdu Tě vyhovuje, že ten float musí mít právě 2 des. místa?

Ludek
Příspěvky: 291
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Float to int

Příspěvek od Ludek » 23 bře 2020, 11:38

Teď jsem tu dlouho nebyl. Kamile stačí, ale co by to udělalo? Anebo jak to pozměnit, aby to vzalo více desetinných míst?

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Float to int

Příspěvek od KamilV » 23 bře 2020, 12:10

U toho "b" se to des. číslo násobí 100, takže v "b" budou vždy jen první dvě des. místa, zbytek se zahodí.
Musely by se třeba spočítat cifry za des. čárkou a násobit to ne fixně 100, ale 10^pocet_cifer.

Uživatelský avatar
gilhad
Příspěvky: 786
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Float to int

Příspěvek od gilhad » 23 bře 2020, 15:51

Pak to vrati stejnou hodnotu pro 3.1 a 3.000000001 - nevim, zda je to uzitecna vlastnost (ledaze bys jeste zvlast ukladal pocet cifer)

a pro veci jako (1.0/3) to bude vracet hoodne cifer :)

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Float to int

Příspěvek od KamilV » 23 bře 2020, 18:32

To sice ano, ale ten problém bude mít zrovna tak už teď u 3.1 a 3.01
Neznám zadání, nevím k čemu je dobré to číslo takto rozdělovat, takže užitečnost nehodnotím.

1.0/3 bude vracet hodně cifer, ale spočetně hodně.

Uživatelský avatar
gilhad
Příspěvky: 786
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Float to int

Příspěvek od gilhad » 23 bře 2020, 21:27

nebude, v prvnim pripade dostane 10, v druhem 1

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Float to int

Příspěvek od KamilV » 25 bře 2020, 09:16

:? Jasně, máš pravdu. Nevím, na co jsem myslel ;)
I to je ale snadno řešitelné, třeba tak, že b nebude 0.N ale 1.N

Víc mi ale "vadí", že neznáme kontext, proč je "potřeba" float takhle dělit. Možná, že by to nakonec vůbec potřeba nebylo. Není jasný cíl, takže cest můžeme vymyslet opravdu hodně.

Protože, jak sám píšeš, v prvním případě u 3.1 dostane 10, ale očekávaný výsledek byl IMHO a=3, b=1

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů