Avatar billede zetn Nybegynder
13. juni 2003 - 16:22 Der er 14 kommentarer og
1 løsning

Gennemsnit af tal

Heysa, jeg skal have udregnet et gennemsnit af nogle tal, men jeg har et problem. Alle mine tal i min database står som 100%, 70%, 45% osv.

Hvordan fjerner man % tegnet hvorefter at tage gennemsnittet?

med venlig hilsen
Wulff.JJ
Avatar billede Slettet bruger
13. juni 2003 - 16:24 #1
Lav dit design om så du ikke gemmer % tegnet. Det er en ualmindelig dum idé.

Ellers hent hele møget ud, løb det igennem en løkke, hvor du fjerner % tegnet, og udregner gennemsnittet.

Første løsning er den rigtige. Sidste løsning er noget hø.
Avatar billede Slater Ekspert
13. juni 2003 - 16:25 #2
hvis du bruger JavaScript, skriver du bare

parseInt("75%"); // ... eller en variabel i stedet for strengen

i VBScript skriver du

CInt("75%")

i stedet. Gennemsnittet fås jo ved at lægge alle tallene sammen og dividere med antallet af tal.
Avatar billede minijensen1 Nybegynder
13. juni 2003 - 16:25 #3
sProcent = "70%"
iTal = Int(Left(sProcent, Len(sProcent)-1))

Int, tager og laver variablen om til typen integer (tal)
Left, tager x antal tegn fra venstre i variablen
Len, tæller hvor mange tegn variablen har

- Michael
Avatar billede Slater Ekspert
13. juni 2003 - 16:26 #4
mercur8 : du har ret i at det er smartere, men når løsningen allerede er lavet med %-tegn, vil det være hurtigere bare at trække det ud - og der kræves jo ingen stor funktion for det.
Avatar billede zetn Nybegynder
13. juni 2003 - 16:28 #5
minijensen ->

Dvs. jeg bare kan lave min kode sådan her:
pro = "0"

do while not rs.eof

sProcent = " & procent & "
iTal = Int(Left(sProcent, Len(sProcent)-1))

pro = pro+iTal

rs.movenext
loop

eller gør jeg noget forkert?
Avatar billede Slettet bruger
13. juni 2003 - 16:28 #6
Det er noget fusk. Så skal han pludesligt bruge de data til noget andet, et andet sted også, og så skal han også der lave fusk. Og så bliver det fusk på fusk. Og til sidst er det bestemt ikke hurtigere at rette noget som helst.

Så lav det om.
Avatar billede zetn Nybegynder
13. juni 2003 - 16:29 #7
mercur8 -> hvis du ikke kan svare på mit spørgsmål så lad venligst vær med at indlægge nogle indlæg. Koden er lavet sådan og sådan bliver den.

Med venlig hilsen
Wulff.JJ
Avatar billede Slettet bruger
13. juni 2003 - 16:30 #8
Jeg svarer på dit spørgsmål. Men åbenbart ikke et svar du kan lide.
Avatar billede Slater Ekspert
13. juni 2003 - 16:31 #9
mercur8 : det kaldes workarounds. mange store programmører bruger masser af det, og det er bl.a. grunden til at de fleste programmer først bliver ordentlige i version 2, da man så redesigner hele skidtet.

du har klart ret i at det vil være mest effektivt at lave systemet om, men det er ikke noget stort workaround, og problemerne vil ikke være store.


minijensen1 & zetn :  Hvorfor al det kode? min løsning er meget hurtigere - både at skrive og udføre.
Avatar billede Slettet bruger
13. juni 2003 - 16:32 #10
viperine: Vrøvl.
Avatar billede zetn Nybegynder
13. juni 2003 - 16:32 #11
Viperine kan du ikke prøve at skrive den kode der skal bruges, er ikke den bedste til det. Forstår ikek rigtig din kode nemlig.
Avatar billede Slater Ekspert
13. juni 2003 - 16:34 #12
for at tage minijensen1's eksempel:

sProcent = "70%"
iTal = Int(Left(sProcent, Len(sProcent)-1))

laves om til

sProcent = "70%"
iTal = CInt(sProcent)

husk at bruge CSng i stedet hvis der kan være decimaler i din procent.
Avatar billede zetn Nybegynder
13. juni 2003 - 16:37 #13
Oki, men er resten af min kode i orden så`?
Avatar billede zetn Nybegynder
13. juni 2003 - 16:42 #14
Heysa, her er min kode (helst ingen kommentarer om hvorfor det er lavet sådan, se bort fra det)

pro = "0"

do while not rs5.eof
if rs5("status") = "Afsluttet" then
sProcent = "100%"
iTal = CInt(sProcent)
else
sProcent = rs("status")
iTal = CInt(sProcent)
end if

pro = "" & pro & "+" & iTal & ""

rs5.movenext
loop

Jeg får bare udtrækket 0....

Kan I hjælpe?
Avatar billede zetn Nybegynder
14. juni 2003 - 09:38 #15
Nogen der kan hjælpe?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester