Martin-Vb Skrevet 10. juni 2007 Skrevet 10. juni 2007 (endret) Jeg får ikke addisjon til og fungere den slår bare sammen tallene. Private Sub addisjon_Click()MsgBox Txttall.Text & " + " & txttall2.Text & " = " & Txttall.Text + txttall2.Text End Sub jeg får ikke % til og funke heller Dim Tall Tall = Rnd() MsgBox Rnd * 100 noen som kan hjelpe Endret 10. juni 2007 av Martin-Vb
GeirGrusom Skrevet 10. juni 2007 Skrevet 10. juni 2007 Viktig å vite forskjellen på datatyper her. TextBox.Text er av typen "string" denne kan i utgangspunktet bare inneholde tekst. Grunnen til at du får dette resultatet her, er at Visual Basic forstår at du vil legge tekst til en messagebox, og derfor bruker den + til å legge sammen tekst. Det du må gjøre for å unngå dette, er å gjøre om datatypen i Textbox.Text til integer, eller flyttall. Bruk CInt, CSng, CDbl etc for å gjøre dette. MsgBox Txttall.Text & " + " & txttall2.Text & " = " & (CInt(Txttall.Text) + CInt(txttall2.Text)) og for den under, så bruker du Rnd to ganger Dim tall As Double tall = Rnd() MsgBox CInt(tall * 100) Les litt om datatyper, viktig informasjon.
Martin-Vb Skrevet 10. juni 2007 Forfatter Skrevet 10. juni 2007 addisjonen funka nå. men % funka ikke. men takk for hjelpen
aadnk Skrevet 10. juni 2007 Skrevet 10. juni 2007 men % funka ikke. 8824498[/snapback] Hvordan fungerte den ikke? Får du en feilmelding? Ønsker du at tallet skal være mellom noe annet enn 0 og 100? Det hjelper å være litt spesifikk, vet du. Iallfall - forsøk heller med denne funksjonen: Public Function RandomNumber(Min As Double, Max As Double, Optional Precision As Long = 2) As Double Static Initialized As Boolean ' Se om vi har oppdatert tilfeldighetsgeneratoren med en ny seed If Not Initialized Then Randomize Initialized = True End If ' Returnerer et tilfeldig avrundet nummer mellom (og inkl.) min og max. RandomNumber = RoundOff(Min + (Rnd * (Max - Min)), Precision) End Function Public Function RoundOff(Value As Double, Optional Precision As Long = 2) As Double ' Flytter desimalen til området der avrundingen finner sted, og tilbake igjen RoundOff = Fix(Value * (10 ^ Precision)) / (10 ^ Precision) End Function Når du nå skriver RandomNumber(1, 100, 2) vil du få et tilfeldig nummer mellom (og inkl.) 1 og 100 med to desimaler.
Martin-Vb Skrevet 10. juni 2007 Forfatter Skrevet 10. juni 2007 probleme var at jeg får feil svar. nå får jeg error message: expecded end sub. det hjelper ikke og skrie inn end sub.
aadnk Skrevet 10. juni 2007 Skrevet 10. juni 2007 nå får jeg error message:expecded end sub. Da har du sikkert lagt inn funksjonen inn i subben. Det skal du ikke. Du må legge den inn UTENFOR, eksempelvis helt nederst i formens kode: Private Sub Tilfeldighet_Click() MsgBox RandomNumber(1, 100, 2) End Sub Public Function RandomNumber(Min As Double, Max As Double, Optional Precision As Long = 2) As Double Static Initialized As Boolean ' *** Legg til resten av koden her. ***
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå