02. oktober 2005 - 20:57
Der er
11 kommentarer og 2 løsninger
Lægge værdier sammen, tal
Hej, Jeg har et problem. Jeg skal have lagt int i o variabler sammen, og have divideret noget. Hvordan gør jeg det? Ex1. var1 + var2.. Ex2. var2 / var3
Annonceindlæg fra Trustworks
Tillid i en Zero-Trust verden
Med voksende trusler, nye EU-krav og øget kompleksitet er cybersikkerhed nu en central ledelsesopgave på linje med strategi og økonomi.
02. oktober 2005 - 20:58
#1
Er det fordi det er alfanummeriske variabler, eller hvad ?
02. oktober 2005 - 20:58
#2
Altså x = var1 + var2 y = var2 / var3 Får en overflow.. Noget med at 30 + 14 giver 3014 i stedet for 44.. har jeg læst mig frem til..
02. oktober 2005 - 20:59
#3
Nej, ren tal..
02. oktober 2005 - 21:00
#4
Hov.. skulle have været oprettet i ASP :)
02. oktober 2005 - 21:02
#5
OK ! Det er fordi værdierne bliver SET som alfanummeriske. Eks : a = "2" b = "3" a+b ville så give 23 Du skal konvertere dem til int på denne måde : a = "2" b = "3" a = cint(a) b = cint(b) a+b vil så give 5 /Killer
02. oktober 2005 - 21:10
#6
Jeg får stadig denne fejl: Microsoft VBScript runtime error '800a0006' Overflow /konkur.asp, line 56 Kan du se fejlen? Data ligger givetvis i tekst felter i min Access DB, men det skulle vel ikke gøre noget? ------------------------------------------- ------------------------------------------- <% imageid = "0" snit = cdbl(0) set imgrs = Server.CreateObject ("ADODB.Recordset") set imgrs = Myconn.execute("SELECT id From [galleri]") while NOT imgrs.EOF set voters = Server.CreateObject ("ADODB.Recordset") set voters = Myconn.execute("SELECT * From [stemmer] where objid = '" & imgrs("id") & "'") votecount = cdbl(0) voteresult = cdbl(0) while NOT voters.EOF voteresult + cdbl(voters("stemme")) votecount + cdbl(1) voters.MoveNext Wend tmpSnit = cdbl(voteresult) / cdbl(votecount) if tmpSnit > snit Then snit = cdbl(tmpSnit) imageid = imgrs("id") End if imgrs.MoveNext Wend response.write "Snit: " & snit & "ImgId: " & imageid %> ------------------------------------------- -------------------------------------------
02. oktober 2005 - 21:11
#7
L56 : tmpSnit = cdbl(voteresult) / cdbl(votecount)
02. oktober 2005 - 21:16
#8
Det er lidt svært, at se uden hele source-koden og accessdatabasen :o) Men hvorfor "doubl'er" du voteresult og votecount ? Jeg tror, at din fejl ligger der et sted. Du bruger funktionen en del, og også steder, hvor den ikke er nødvendig :)
02. oktober 2005 - 21:20
#9
vote result er fordi det kan give en double hvis jeg dividerer ex. 20 med 7 og så tænkte jeg, ens datatyper over det hele må være løsningen. Det er hele koden der.. Databasens felter som er brugt her, er alle tekst, ud over id i Image. Den er autonummering. Hvordan skulle jeg ellers lave det? :)
02. oktober 2005 - 21:25
#10
voteresult = voteresult + cdbl(voters("stemme")) votecount = votecount + 1 du lægger til, men glemmer at tildele variablen resultatet Prøv at kigge på SQL funktionerne SUM og AVG
02. oktober 2005 - 21:27
#11
SELECT AVG(stemmer) as gennemsnit From [stemmer] where objid = 'id' vil give dig gennemsnittet
02. oktober 2005 - 21:27
#12
ksoren -> ARGH JA!! K*ft, godt tænkt af mig der.. *G* Takker for det.. Smider du ikke også lige et svar ;)
02. oktober 2005 - 22:56
#13
ok. Er det en Access database? Så kunne denne måske være et forsøg værd: select top 1 objid, avg(stemme) as gennemsnit from stemmer where objid in (select id from galleri) group by objid order by avg(stemme) desc
Kurser inden for grundlæggende programmering