jeg har levet et prgram bestående af en del textboxe. Jeg har kaldt dem for text1, text2 osv. ca. halvdelen er read-only. I de andre skal du taste værdier ind. Disse værdier skal kunne være tal med (i hvert fald) 5 decimaler. Jeg har en knap, der når man klikker på den, udfører koder som fx:
Dim fro As Double fro = 0.02895 Dim frs As Double frs = 8.31
Dette eksempel virker fint nok, men når den bruger en af de tal med decimaler, som man skriver ind i en textbox, er det som om den sletter alle decimal-tallene og kun tager det foran kommaet. Forestil dig at man i programmet skal kunne finde tyngdekraften af en samlet masse. Svaret skal stå i textbox10 og de forskellige masser indtaster man i textbox6 og textbox7.
Dim tyngdeacceleration As Double tyngdeacceleration = 9.82
ups..:D nåh men problemet er der på en måde stadig. Når man i en textbox kommer frem til et resultat, ved at indsaætte andre tal i andre textboxe. Så kan man ikke bruge det resultat i andre beregninger, ligesom i excel hvor du kan sige (E2= B5+C6)..
Uanset hvilket locale du har i Vista eller VB, så kan "Val"-funktionen IKKE læse kommaer. Den kan KUN bruge [.] som decimalseparator. Derfor er det nok mere sikkert at bruge CDbl() der tager hensyn til locale-indstillinger.
Desuden er det dårlig kodepraksis at bruge alle disse typekonverteringer mellem String og Double til beregninger. Du bør bruge variabler af den rette type (Double) til alle mellemregninger, og til at holde resultater. Textboxene bør kun bruges til input, og til at VISE resultatet. Dvs at hvis du skal regne videre på indholdet af textbox10, så skal du ikke bruge textboxen til at holde resultatet, men derimod en Double-variabel, som du så kan konvertere til en String for at VISE i textbox10.
Det er klart at konvertering er nødvendigt på inputboxene, men ALLE andre tal (beregningsresultater) bør du have liggende i Double-variable hvis de skal bruges videre frem.
Jeg kender ikke så meget til Visual Basic, men har haft samme problem med Visual Dbase, som jeg har et godt kendskab til. Problemet har jeg løst ved, inden at bruge "val", deler tallet op i to dele(substr.....), en del før komma og en anden del efter komma. Så kan man rent matematisk i programmet få det nøjagtige tal. Håber, at det også kan bruges i Visual Basic
har brugt variabel-løsningen, og det virker nogenlunde nu.. tak
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.