[ASP] 10 + 10 = 20, niet 1010

Pagina: 1
Acties:

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Met de volgende regel code krijg ik niet het goede totaal uit 2 variablen.
<% session("totaalscore")=session("totaalscore")+request.Form("antwoord") %>

Hoe zou het kunnen komen dat ik (bijv.) 1010 uit deze code krijg in plaats van 20, waarneer de beide variable bijvoorbeeld 10 zouden zijn?

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 19:20
Hij ziet ze als string, en plakt deze nu dus aan elkaar. Eerst even expliciet converteren naar int:
code:
1
<% session("totaalscore")=Cint( session("totaalscore") )+Cint( request.Form("antwoord") ) %>

[ Voor 60% gewijzigd door sig69 op 28-01-2005 16:55 ]

Roomba E5 te koop


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15-05 08:48

Janoz

Moderator Devschuur®

!litemod

Beide variabelen zullen waarschijnlijk strings zijn en geen integers (of floats). Dat betekend dat ze als tekst behandeld worden. Bij tekst betekent de + dat beide stukken tekst achter elkaar geplaatst worden.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Je moet de VBScript engine even duidelijk maken dat het om getallen gaat, dus even een CLng (voor een long) of een CInt( voor een integer) of een CDbl( voor een double) etc.

  • Dennis013
  • Registratie: Januari 2003
  • Laatst online: 20-04 14:38
Enorm bedankt gasten..
Cint deed het inderdaad the trick

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Hou wel rekening met de maximale waarde van een Int in VBScript. Dit is geloof ik iets van 32767 of 32768 ofzo. Ander kun je een Long gebruiken (en dus CLng als conversiefunctie)

  • Equator
  • Registratie: April 2001
  • Laatst online: 14-05 10:00

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Daarnaast als je gebruik maat van decimalen is het handiger om Cdbl te gebruiken.
Cint("1,9") is "2"
Visual Basic:
1
2
CDbl("1,9") + CDbl("3,6") geeft 5,5
CInt("1,9") + CInt("3,6") geeft 6 als uitkomst
Pagina: 1