Vizitator comma Postat Ianuarie 19, 2012 Partajează Postat Ianuarie 19, 2012 buna seara pentru cei care lucreaza cu mikroBasic Pro (v4.15) ma intereseaza cum pot sa aduc un numar cu zecimale la un numar intreg ceva de genu: a = 76 ' sa zivem ca e timpul masurat in ms de ma momentul x la momentul yb = 3 ' valiare fixa, scrisa in program la care vreau sa-l impart pe ac = a / b ' am nevoie ca valoarea lui "c" sa fie un numar intregin cazul de mai sus rezultatul "c" = 25.33333333 eu vreau sal transform in numar intreg, adica c = 25 ce trebuie sa scriu in program ca sa aduc un numar cu zecumala la un mumar intreg in microBasic merci anticipat Link spre comentariu
Liviu M Postat Ianuarie 19, 2012 Partajează Postat Ianuarie 19, 2012 dim c as integer? Daca nu merge, folosesti conversia explicita (pagina 174 in manual) c = (short) (a / b) Link spre comentariu
Vizitator comma Postat Ianuarie 19, 2012 Partajează Postat Ianuarie 19, 2012 am pus mai jos un cod putin mai explicat dim a as byte dim b as bytedim cc as ???? ' asta nu stiu cum sa-l definescmain: '.... ' in urma unei proceduri care include un "do" <=> "loop until ..." imi rezulta "a" a = ... ' valoarea lui "a" e minim 0 ... maxim 250 ms in cazul meu ... adica asa l-am setat eu, maxim la 250 '.... '.... b = 70 ' b = 70% ... vreau sa fac cc = 70% din a ... sau cc = n% din a ... nu stiu la cat % o sa il setez ' cu regula de 3 simple: ' a ....... 100% ' cc ....... 70 % (adica "b") cc = (a * b) / 100 ' in cazul in care "a" ar fi 175 ' cc = 122.5 ' si in cazul asta nu pot sa fac urmatoarea bucla ... si am neviue sa-l reduc pe "cc" la numar intreg ... in cazul meu 122 zz = 0 do led = 1 zz = zz + 1 delay_ms (1) loop until zz = cc led = 0 dar pot sa-l definesc pe "a" ca word sau ca longword ... si poate sa fie mai mare de 255 ... ma intereseaza si varianta in care "a" este definit ca word sau longword Link spre comentariu
francezu Postat Ianuarie 19, 2012 Partajează Postat Ianuarie 19, 2012 In mod normal conversia din zecimal in intreg se face prin trunchiere sau rotunjire. In urma unei operatii de divizare, compilatorul mikroBasic face trunchiere, si pastreaza doar partea intreaga a rezultatului; exceptie face cazul cand destinatia rezultatului este o variabila de tip float. Deci daca definesti ca byte, word, etc, variabila in care salvezi rezultatul, nu trebuie sa-ti faci probleme, va fi trunchiat automat, pentru a fi compatibil cu tipul variabilei tale. Link spre comentariu
Vizitator comma Postat Ianuarie 20, 2012 Partajează Postat Ianuarie 20, 2012 ahama gandeam eu ca asa ar fi, dar nu eram siguro sa incerc diseara sa fac un mic programel de proba sa vad cum merge Link spre comentariu
Vizitator comma Postat Ianuarie 22, 2012 Partajează Postat Ianuarie 22, 2012 gata ... am descoperit ... defapt am citit mai bine manualul cc = (a * b) / 100devinecc = a * b div 100 ' si rezultatul este 122ca sa stie si altii in caz ca au nevoiediv Division - round down DIVISION BY ZEROIf a zero (0) is used explicitly as the second operand in the division operation (x div 0), the compiler will report an error and will not generate a code. In case of implicit division where the second operand is an object the value of which is 0 (x div y, where y=0), the result will be undefined. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum