09. august 2005 - 10:09Der er
21 kommentarer og 1 løsning
ganger forkert
hej
jeg har en funktion som skal gange pris med antal. Dvs. har denne når jeg tilføjer til databasen: rs1("VareSum") = rs("pris") * request.form("Antal")
Hvis varesummen har kommatal, dvs, eks. 5,50 kr., og antal er 1, så gemmer den kun 5,00 kr. Dvs. den ikke tager den halve med, det gør aldrig ved halve, enten runder den op eller ned til hele tal. Hvordan undgår jeg dette ?
Det er fordi CDbl er afhængig af "regional settings" - som nok er danske på din server, derfor skal det være omvendt, altså udskift punktum med komma...
Ja, men jeg mener stadig det er det rigtige format, for den løsning spotgun kom med satte blot en tusindskil ind i stedet for komma. Du skal stadig adressere problemet med typekonvertering af operatorer i din multiplikation. Prøv evt.:
res = 0.0 res = cdbl(rs("pris")) * cdbl(request.form("antal"))
Grunden til at jeg tildeler 0.0 til at starte med er et forsøg på at sætte subtypen af varianten res (alle variabel i VBScript er varianter :)) til en double inden beregningen (prøv evt. at udskrive typename(res) inden og efter beregningen).
Hvis det ikke fungerer så prøv:
res = cdbl(cdbl(rs("pris")) * cdbl(request.form("antal")))
der konverterer hver enkel operator og derefter hele mellemregningen inden det kommer i variabelen res.
Kan du prøve at vise lidt mere (af den faktisk kørende) kode? Det kunne være spændende at se om der var nogle andre faktorer som kunne have indvirkning på hvordan resultatet bliver fortolket (selvom jeg ikke lige kan komme i tanke om hvad det skulle være...).
Gemmer i Access database: Tager prisen og ganger med antal. Pris er angivet i tal: 6,5 , antal i tele tal: 1 ----------------------- Set rs1 = Server.CreateObject("ADODB.Recordset") strSQL = "select * from kob" rs1.Open strsql, conn, 1, 3
softspot: Efter et nærmere kig, så er netop lige VareSum IKKE valuta, men tal, så er jo der hele problemet har ligget og jeg har overset .. Men tak for hjælpen, smid et svar :)
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.