Avatar billede rille101 Nybegynder
22. maj 2007 - 09:43 Der er 15 kommentarer og
1 løsning

Lægge form felter sammen (ignorerer decimaler)

Jeg er ved at lave en dagsseddel hvori man bl.a. skal udfylde nogle felter med brugt arbejdstid på forskellige opgaver.
Jeg har så lavet nedestående, så alle timer lægges sammen.

arbejdstimer = int(request.form(("timer1"))) + int(request.form(("timer2"))) + int(request.form(("timer3"))) + int(request.form(("timer4"))) + int(request.form(("timer5"))) + int(request.form(("timer6")))

Problemet er bare, at, hvis jeg f.eks. skriver 1,25 i et felt, og 1,75 i et andet så ignoreres decimalerne og resultatet bliver 2 og ikke 3.

Hvordan får jeg decimalerne med?
Avatar billede donslund Nybegynder
22. maj 2007 - 09:52 #1
Hvad sker der hvis du bytter , ud med . ?
Avatar billede rille101 Nybegynder
22. maj 2007 - 09:58 #2
så får jeg 300!
Avatar billede cpufan Juniormester
22. maj 2007 - 10:53 #3
int(request.form(("timer1")))  betyder jo at du laver dit tal om til et heltal, ved at ingnorere det efter kommaet.

formatnumber(request.form("timer1"),2) giver dig et tal med 2 decimaler.

prøv det.

hvis det ikke giver korrekt resultat skal det lige konverteres til at behandle , og . korrekt:

formatnumber(replace(request.form("timer1"),",","."),2)

og så kan du passende lave en funktion:

function konv(mittal)
if isnumeric(mittal) then
konv = formatnumber(replace(mittal),",","."),2)
else
konv = 0
end if
end function

arbejdstimer = konv(request.form("timer1")) + konv(request.form("timer2")) + konv(request.form("timer3")) + konv(request.form("timer4")) + konv(request.form("timer5")) + konv(request.form("timer6"))
Avatar billede rille101 Nybegynder
22. maj 2007 - 11:12 #4
Har lige prøvet dine forslag uden held. (Det er nok mig der klokker i det...)

Din løsning med funktion tiltaler mig. Har prøvet den men får fejlen

Expected end of statement
konv = formatnumber(replace(mittal),",","."),2)
---------------------------------------------^
Avatar billede rille101 Nybegynder
22. maj 2007 - 11:13 #5
Hov, den peger altså på to tallet.
Avatar billede cpufan Juniormester
22. maj 2007 - 13:58 #6
hov min fejl


konv = formatnumber(replace(mittal,",","."),2)
Avatar billede rille101 Nybegynder
23. maj 2007 - 10:30 #7
hmm. Den giver dette resultat:

125,00175,000,000,000,000,00
Avatar billede cpufan Juniormester
23. maj 2007 - 10:37 #8
sjovt,

det bliver behandlet som en streng...

tænker lige!

prøv denne:
arbejdstimer = (konv(request.form("timer1")) + konv(request.form("timer2")) + konv(request.form("timer3")) + konv(request.form("timer4")) + konv(request.form("timer5")) + konv(request.form("timer6")))

eller hvis det ikke gør det, så :

arbejdstimer = (konv(request.form("timer1"))*1 + konv(request.form("timer2"))*1 + konv(request.form("timer3"))*1 + konv(request.form("timer4"))*1 + konv(request.form("timer5"))*1 + konv(request.form("timer6"))*1)
Avatar billede rille101 Nybegynder
24. maj 2007 - 08:58 #9
Den er ikke meget for det.

Den første giver:
125,00175,000,000,000,000,00

og den næste giver:
300
Avatar billede cpufan Juniormester
24. maj 2007 - 10:18 #10
må jeg se hele dit script
Avatar billede rille101 Nybegynder
24. maj 2007 - 11:41 #11
Her er delen der omhandler behandling af formen fra forrige side.

<%if request.form("button") = "Send >>" then
Function Clean(strHtml)
        strHtml = Trim(strHtml)
        strHtml = Replace(strHtml,"'","''")
        strHtml = Replace(strHtml,"&nbsp;"," ")
        strHtml = Replace(strHtml,"æ","&aelig;") 'æ
        strHtml = Replace(strHtml,"Æ","&AElig;") 'Æ
        strHtml = Replace(strHtml,"ø","&oslash;")'ø
        strHtml = Replace(strHtml,"Ø","&Oslash;")'Ø
        strHtml = Replace(strHtml,"å","&aring;")'å
        strHtml = Replace(strHtml,"Å","&Aring;")'Å
        Clean = strHtml
End Function
strKundenavn1 = Clean(Request.Form("kundenavn1"))
strKundenavn2 = Clean(Request.Form("kundenavn2"))
strKundenavn3 = Clean(Request.Form("kundenavn3"))
strKundenavn4 = Clean(Request.Form("kundenavn4"))
strKundenavn5 = Clean(Request.Form("kundenavn5"))
strKundenavn6 = Clean(Request.Form("kundenavn6"))

strVareforbrug1 = Clean(Request.Form("Vareforbrug1"))
strVareforbrug2 = Clean(Request.Form("Vareforbrug2"))
strVareforbrug3 = Clean(Request.Form("Vareforbrug3"))
strVareforbrug4 = Clean(Request.Form("Vareforbrug4"))
strVareforbrug5 = Clean(Request.Form("Vareforbrug5"))
strVareforbrug6 = Clean(Request.Form("Vareforbrug6"))

function konv(mittal)
if isnumeric(mittal) then
konv = formatnumber(replace(mittal,",","."),2)
else
konv = 0
end if
end function

arbejdstimer = (konv(request.form("timer1"))*1 + konv(request.form("timer2"))*1 + konv(request.form("timer3"))*1 + konv(request.form("timer4"))*1 + konv(request.form("timer5"))*1 + konv(request.form("timer6"))*1)


herefter kommer et jmail script
Avatar billede rille101 Nybegynder
29. maj 2007 - 13:54 #12
Kan det lade sig gøre?
Avatar billede cpufan Juniormester
29. maj 2007 - 14:23 #13
prøv

arbejdstimer = dbl(request.form(("timer1"))) + dbl(request.form(("timer2"))) + dbl(request.form(("timer3"))) + dbl(request.form(("timer4"))) + dbl(request.form(("timer5"))) + dbl(request.form(("timer6")))
Avatar billede rille101 Nybegynder
29. maj 2007 - 14:57 #14
hvordan skal dbl defineres?
Avatar billede cpufan Juniormester
01. juni 2007 - 12:43 #15
hmm, det er bare en double, dvs et tal med decimaler

hvis den ikke vil være med til det
så udskift dbl med Cdbl
Avatar billede rille101 Nybegynder
01. juni 2007 - 13:08 #16
DER VAR DEN!

Nu giver 1,25 + 1,75 = 3

Mange tak for hjælpen!
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