anoniem Geplaatst: 19 april 2002 Delen Geplaatst: 19 april 2002 Ik heb een form-invulveld waar men een bedrag dient in de vullen. Stel men vult een string-waarde in, bijv. "25 Euro" D.m.v. REPLACE(bedrag, " Euro","") kan ik er "25" van maken, echter dit is nog steeds een string. Hoe maak ik er nu een numerieke waarde van zodat ik er alsnog meer kan rekenen? Quote Link naar reactie
anoniem Geplaatst: 19 april 2002 Auteur Delen Geplaatst: 19 april 2002 myInt = CInt(myString) -> Integer myLng = CLng(myString) -> Long myDbl = CDbl(myString) -> Double (die laatste lijkt me wel handig als je met gebroken getallen moet werken) Quote Link naar reactie
anoniem Geplaatst: 19 april 2002 Auteur Delen Geplaatst: 19 april 2002 <% Dim iEuro iEuro = Clng(Request.Form("euro")) %> VBScript heeft een aantal conversie functies: zie o.a. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vtoriFunctions.asp Cint() converteert naar een Integer Clng() converteert naar een Long Het verschil tussen Integer en Long is dat een "long" een hoger getal kan bevatten, in jouw geval is een Integer echter waarschijnlijk goed genoeg. Twee opmerkingen: * Als je met een database werkt en daar (gehele) getallen uit opvraagt, krijg je het type "long" terug. Als je vervolgens een vergelijking uitvoert (If a = b Then) en de types van de a en b zijn verschillend (bijvoorbeeld Long en Integer) dan zijn ze *nooit* gelijk. Dit is één van de redenen waarom ik altijd met type Long werk (conversie met de Clng functie), en niet met type Integer. * Conversie functies kunnen een foutmelding geven. Als de conversie onmogelijk is komt er een foutmelding, en stopt de ASP-pagina met verdere verwerking. Onmogelijke conversies zijn als er *geen* getal van te maken is. Bijvoorbeeld Clng("abcd") geeft een fout. Die fout moet je afvangen, anders breekt de ASP pagina halverwege af. Het beste is om zelf een conversie functie te maken, bijvoorbeeld: Function MakeLong(ByVal var) On Error Resume Next MakeLong = Clng(var) If Err Then MakeLong = 0 End If End Function In deze functie wordt de waarde 0 (zero) als er een conversiefout optreedt. De error wordt afgevangen en de ASP-pagina blijft gewoon werken. De code die je dan gebruikt is: <% Dim iEuro iEuro = MakeLong(Request.Form("euro")) %> Quote Link naar reactie
anoniem Geplaatst: 19 april 2002 Auteur Delen Geplaatst: 19 april 2002 Thanx, werkt perfect. Quote Link naar reactie
anoniem Geplaatst: 19 april 2002 Auteur Delen Geplaatst: 19 april 2002 Nog een vraagje: Bedrag = 25 SESSION("bedrag") = Bedrag SESSION(Bedrag) = Bedrag Klopt het dat de onderste een numerieke sessie-variabele is? Zo ja, werkt die wel, want ik heb het bedrag gekoppeld aan een sessievariabele, echter in de volgende pagina's is de waarde weg. Quote Link naar reactie
anoniem Geplaatst: 19 april 2002 Auteur Delen Geplaatst: 19 april 2002 <% Bedrag = 25 SESSION("bedrag") = Bedrag SESSION(Bedrag) = Bedrag %> Is heel tricky code. Aan het eind heb je 2 session variabelen. Session("bedrag"), met waarde 25 Session("25"), meet waarde 25. Ander voorbeeld (duidelijker misschien): <% MyName = "eenwoord" Session(MyName) = "deze tekst" Response.write Session("eenwoord") %> Je zal zien dat er dan "deze tekst" in je browser verschijnt. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen