webForumDet fria alternativet

Variabelproblem

8 svar · 271 visningar · startad av i-or

i-orMedlem sedan nov. 2001294 inlägg
#1

Det var längesedan jag programmerade, jag är riktigt ringrostig. :(

<% 
v1 = 0.05
v2 = 0.1
v3 = 0.85
S = 1
For i=1 to 3
M = "v" & i
S = S * M
Next
%>

Jag får inte denna enkla kod att fungera. Jag antar att M blir en sträng istället för att vara en variabel.

Körningsfel i Microsoft VBScript fel '800a000d'

Inkompatibla typer: 'M'

Tack på förhand

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Jovisst blir det en sträng. Vad vill du göra?

i-orMedlem sedan nov. 2001294 inlägg
#3

Jag vill att M ska ersättas med variablerna (v1, v2 och v3).

Alltså ska S = S * 0.05 beräknas när i = 1.

cyprysMedlem sedan dec. 20003 563 inlägg
#4
<%
v1 = 0.05
v2 = 0.1
v3 = 0.85
Dim i, S, M
Dim arr(v1, v2, v3)

for i = lbound(arr) to ubound(arr)
S = S * arr(i)
next
%>
i-orMedlem sedan nov. 2001294 inlägg
#5

Kompileringsfel i Microsoft VBScript fel '800a0402'

Heltalskonstant förväntas.

Dim arr(v1, v2, v3)
--------^

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Vilket initialt värde vill du ha på S?


dim s,v(2),i
s = 4711
v = array(0.05,0.1,0.85)

for i = 0 to 2
 s = s * v(i)
next

I och för sig så är det onödigt med en loop

s = 4711*0.05*0.1*0.85
i-orMedlem sedan nov. 2001294 inlägg
#7

Körningsfel i Microsoft VBScript fel '800a000d'

Inkompatibla typer

v = array(0.05,0.1,0.85)

Går det att ha decimaltal i arrayen?

Initialt värde?

Jag behöver en loop, för detta var bara ett enklare exempel av problemet.

LarsGMedlem sedan dec. 200012 464 inlägg
#8
dim s,v,i  'inget (2)

Jag tänkte bara att om S inte har tilldelats något värde innan loopen så blir resultatet 0.

i-orMedlem sedan nov. 2001294 inlägg
#9

Ok, jag hade S=1 i första exemplet men det föll bort. :)

Tack så mycket för hjälpen!

131 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)