Guest comma Posted January 19, 2012 Share Posted January 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 to comment
Liviu M Posted January 19, 2012 Share Posted January 19, 2012 dim c as integer? Daca nu merge, folosesti conversia explicita (pagina 174 in manual) c = (short) (a / b) Link to comment
Guest comma Posted January 19, 2012 Share Posted January 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 to comment
francezu Posted January 19, 2012 Share Posted January 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 to comment
Guest comma Posted January 20, 2012 Share Posted January 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 to comment
Guest comma Posted January 22, 2012 Share Posted January 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 to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now