[DELPHI] Zistenie či je číslo celé číslo.

Programovacie jazyky, rady, poradňa...
max007
Novice
Novice
Príspevky: 1
Registrovaný: 23 okt 2009, 15:05

[DELPHI] Zistenie či je číslo celé číslo.

Príspevok od používateľa max007 »

Dobrý deň,

Hladám spôsob ktorým by som mohol zistit či číslo X a Y výjde po delení celé číslo, tj nie desatinné..

Dakujem...
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

zeby tak ze x modulujes y psislonom? a ked je to nula tak dany podiel x a y je cele cislo? myslis zeby to tak mohlo byt?

alebo mohlo by to byt aj tak ze to vydelis tak ze aspon ten ypsislon bude realne(delit tym znakom ze /?)? a pozries sa na vysledok ci je rovny celociselnemu deleniu teda dividu(od slo va div?)?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

No to by sa aj dalo, ale dost je to komplikovane riesenie by som povedal.
No ine ani mna nenapadne :?

Ale juho to popisal trocha malo a zle :)
Musel by si dat 4 premenne (napr. x, x1, y, y1) x a y by si dal ako integer a x1 a y1 ako real. A testoval by si, ze ak sa (x div y)=x1/y1 tak je cele.
Samozrejme x=x1 a y=y2

Ale naozaj veeelmi cudne riesenie, takze ber ako veelmi krajne :D

A este aby toho nebolo malo, tak je pravdepodobne nevyuzitelne :)

btw. div=divorce ;)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

vôbec nepotrebuje 4 premenné, vôbec to nie je škaredé riešenie (bežne sa to porovnáva spôsobom if((x mod y) = 0) then ...) a využitie to môže mať veľmi široké, záleží od toho čo robí

//edit: áno, pardon. Pomýlil som sa, už je to opravené
sINN3R
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 330
Registrovaný: 17 jún 2006, 11:21
Bydlisko: Trencin - Slovakia - EU
Kontaktovať používateľa:

Príspevok od používateľa sINN3R »

nema tam byt namiesto toho div mod ?

if (( x mod y) == 0) {
x / y je cele cislo
}
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Ak ide o rýchlosť (a teda, ak sa tá kontrola robí veľmi často), je rozumné robiť to tak, aby sa tam používalo číslo, ktoré je mocnina dvoch (a teda stačí AND), alebo sa to delenie prerobí na násobenie (násobenie je rýchlejšie ako delenie).
Napísať odpoveď