Jump to content
ELFORUM - Forumul electronistilor

transformare nr zecimal in nr intreg in mikroBasic


Guest comma

Recommended Posts

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 intreg
in 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
  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

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

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

gata ... am descoperit ... defapt am citit mai bine manualul

cc = (a * b) / 100devinecc = a * b div 100     ' si rezultatul este 122
ca sa stie si altii in caz ca au nevoie
div                                            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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines