Gå til innhold

addere variabler i vb


Anbefalte innlegg

hei

 

jeg prover a lage en enkel kalkulator i vb for morro skykld

jeg har folgende kode:

Private Sub cmdbtnerlik_Click()
   If optbtnaddere Then
       lblsvar = tall1 + tall2
   End If
   If optbtnsubtrahere Then
       lblsvar = tall1 - tall2
   End If
   If optbtnmultiplisere Then
       lblsvar = tall1 * tall2
   End If
   If optbtndividere Then
       lblsvar = tall1 / tall2
   End If
   
End Sub

 

den funker fint for alle regneoperasjonene utnom addering..

nar jeg prover a legge sammen f.eks. 1 og 3 far jeg 13 til svar..

 

noen som ser noen losning pa problemet?

Endret av toss
Lenke til kommentar
Videoannonse
Annonse

Regner med at teksten i tekstfelt blir antatt å være streng automatisk.

 

Det du må gjøre er å opprette to integers. Når du aktiverer funksjonen må du hente ut verdien i String1 og gjøre den til integer 1, og samme med string/integer 2.

 

så kan du addere integer1 og 2 ved å si integer1= integer1 + integer2

 

 

så setter du en siste string3 = integer1

 

så setter du label = string3

 

(det er mulig du kan sette string3 direkte "string3 = integer1+integer2" f.eks. og således hoppe over ett ledd. Det er også mulig du kan sette lblsvar direkte på samme måte og således unngå å bruke string3 helt)

 

 

(grunnen til at du får 13 ved å legge sammen det du har er at du likegodt kunne fyllt dem med "A" og "B" og fått "AB" som svar...regner med du ser sammenhengen... addering av strenger bare setter strengene etter hverandre.

Lenke til kommentar

Pluss-operatøren er spesiell - den fungerer både for strenger òg numretiske variabler; således må du sette datatypen på strengene du skal addere. Det finnes en rekke måter å gjøre dette på, blant annet ved å deklarere to Integer-variabler (eller Long, Single ect.), eller ved hjelp av noen funksjoner. Du har først og fremst de ymse datakonverteringsfunksjonene, CInt, CLng, CSng, CDbl. I tillegg kan du benytte noen ekstrafunksjoner, eksempelvis Fix og Val. Jeg vil i alle tilfeller anbelale bruken av Val når en skal utføre matematiske beregninger på brukerinndata - da kan en nemlig unngå problematikk dersom brukeren taster inn ikke-numretiske karakterer, idet denne funksjonen automatisk kutter avlesningen om den skulle støte på slike.

 

For å konkretistere, du bruker Val-funksjonen således:

lblsvar = Val(tall1) + Val(tall2)
Lenke til kommentar

For og slippe 'if' setningene kan du bruke følgende:

 

Private Sub cmdbtnerlik_Click()
Select Case true
  case optbtnaddere: lblsvar = val(tall1) + val(tall2)
  case optbtnsubtrahere: lblsvar = val(tall1) - tval(tall2)
  case optbtnmultiplisere: lblsvar = val(tall1) * val(tall2)
  case optbtndividere: lblsvar = val(tall1) / val(tall2)
End Select
End Sub

Lenke til kommentar
  • 3 uker senere...

Det er nesten bare tull med alt det derre Integer-greiene!!

Du trenger bare å gange med 1.

Det fungerer på string-verdier!

 

Det eneste du trenger å gjøre, er å skrive:

 

lblsvar = tall1 + tall2 * 1

 

Da fungerer det med tekstbokser som A og B!!

Endret av P0wer
Lenke til kommentar

Det er snakk om datatyper, tall1 + tall2 er tvetydig hvis det er snakk om tekststrenger, skal "123" + "456" = "123456" eller 579?

Da må isåfall visual basic sjekke om det er tall i strengene før den adderer, så hvis dataen er feilformatert vil det blir det samme som å bruke & istedet.

derfor konverterer man med CInt, CDbl, CCur etc.

lblSvar.Caption = CStr(CCur(tall1) + CCur(tall2))

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...