Archief - [PROG] [Vb.net] Probleem met conversies

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Lethall

Legacy Member
Oké, als er rare dingen in de code staan, niet op letten, dit is de manier waarop wij het leren, maar ik zit nu met een klein probleem.
Ik ga dit tonen aan de hand van een klein voorbeeld, op een form staan 2 textboxes (txtGetal1, txtGetal2) en een button (btnStart). Gewoon een getal in iedere textbox invoeren, op die button klikken, dan getal1 / getal2 in die messagebox. Ik kan die met veel minder variabelen doen ofc dan hieronder, maar het is om men probleem aan te duiden, de code zelf is heel simpel, maar gewoon om het probleem te tonen.

Dim intGetal1, intGetal2 as integer
Dim sngUitkomst as single
intGetal1 = Cint(txtGetal1.text)
intGetal2 = Cint(txtGetal2.text)
sngUitkomst = Csng(intGetal1/intGetal2)
Messagebox.Show("uitkomst is : " & Cstr(sngUitkomst)

Dit is hoe we het vorig jaar geleerd hadden ivm met converteren, maar dit jaar wil onze leerkracht daarvanaf stappen en de "nieuwere" manier gebruiken, de code word dan zoiets

Dim intGetal1, intGetal2 as integer
Dim sngUitkomst as single
intGetal1 = integer.parse(txtGetal2.text)
intGetal2 = integer.parse(txtGetal2.text)
sngUitkomst = single.parse( intGetal1/ intGetal2)

=> op deze lijn loopt het verkeerd, volgens visual studio is dit een foute conversie en de enige juiste, die hij ook als verbetering aangeeft zou zijn.
sngUitkomst = Cstr(intGetal1/intGetal2)
Wat dus (als ik nu niet even totaal aan het flippen ben) gewoon totaal niet correct is, waarom zou je een berekening willen doen op 2 strings? En waarom laat hij mij die uitkomst van die 2 integers niet converteren naar een single?
Terwijl met de "oude" manier van converteren (via "Csng()") dit perfect werkt?

Iemand die mij kan helpen? Kan evengoed zijn dat ik iets over het hoofd zie, of ergens gewoon een fout maak door men kleine ervaring en kennis ervan, maar ik zit hier toch wel vast op.

Bedankt op voorhand

AsinuS

Legacy Member
Imo is het beter CType(invoer,Integer) te gebruiken. Best ook eerst je ingave controleren met IsNumeric anders zal je programma crashen bij het converteren van een alfanumeriek karakter.

Grtz

Bubba

Legacy Member
Ja Asinus, maar ge loopt al voor hé. :p

Hij krijgt die lessen int school, en daar mag je vaak geen elementen gebruiken die je nog niet expliciet gebruikt hebt in de les.

Allé, zo was het hier toch het geval.

AsinuS

Legacy Member
BuBbA zei:
Ja Asinus, maar ge loopt al voor hé. :p

Hij krijgt die lessen int school, en daar mag je vaak geen elementen gebruiken die je nog niet expliciet gebruikt hebt in de les.

Allé, zo was het hier toch het geval.

Meerdere wegen leiden naar Rome ;) en Cstr is nog een oude 'vb script weg' dacht ik ;)

Lethall

Legacy Member
AsinuS zei:
Imo is het beter CType(invoer,Integer) te gebruiken. Best ook eerst je ingave controleren met IsNumeric anders zal je programma crashen bij het converteren van een alfanumeriek karakter.

Grtz

zoals Bubba zei, de leerkracht geeft ons bepaalde codes, manieren enzoverder, en daar moeten wij ons aan houden, dus alles moet opgelost worden via de geziene manieren.
@Asinus, Cstr, Cint, etc is inderdaad een oude manier om het te doen, maar omdat onze leerkracht nu wel "overschakelen" op .parse moeten we het ook zo doen vanaf nu.
Nu ja hij kan er zelf niet aan uit dus zijn 'oplossing' is nu.
intGetal1 = integer.parse(txtGetal2.text)
intGetal2 = integer.parse(txtGetal2.text)
sngUitkomst = single.parse( intGetal1.tostring / intGetal2.tostring)
wat wel werkt, maar ik vind het toch nog altijd raar.
Gewoon even om jullie mening te weten, correcte manier of niet? Dus zo blijven doen, of gewoon het zo doen op testen en voor de rest het doen zoals het zou moeten zijn?

Robijntje007

Legacy Member
De intellisense van VB geeft normaal aan de Cint()-manier wel werkt...
Ik zou die gebruiken...
anders converteren naar string en dan naar gewenste formaat...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan