Avatar billede andersjo Nybegynder
14. januar 2005 - 12:30 Der er 13 kommentarer og
1 løsning

varchar til float

Hei.

Jeg har en varchar variablel som inneholder et tall. Dette må jeg ha endret til float. Hvordan kan jeg gjøre det?

//andersjo
Avatar billede tjaz Nybegynder
14. januar 2005 - 13:00 #1
hvis den kun indeholder tal kan du angive den med CInt(dinvariabel) så bliver den til et rent tal som er til at regne med i fx + - osv.
Avatar billede andersjo Nybegynder
14. januar 2005 - 13:06 #2
Det kan være et desimaltall, og det er det som er problemet.
Jeg får tallet avrundet til nærmeste heltall når jeg legger det inn i databasen. Jeg ønsker å legge inn som desimaltallet i basen de gangene summen blir et desimaltall.
Avatar billede tjaz Nybegynder
14. januar 2005 - 13:16 #3
prøv at benytte dig af ¨

Round(dinvariabel, 2)

2 = det antal decimaler du ønsker
Avatar billede andersjo Nybegynder
14. januar 2005 - 13:22 #4
Har prøvd det også. Det fungerer fint når jeg skriver ut variabelen med response.write. Fungerer også å legge til i databasen så lenge summen ikke er et desimaltall. Når summen er et desimaltall og jeg bruker Cint() eller Clng() fungerer scriptet, men det legger inn et avrunnet heltall i databasen. Feltet i databasen er av typen float.
Avatar billede tjaz Nybegynder
14. januar 2005 - 13:43 #5
lav evt typen om til double så kan den indeholde tal med komma'er
Avatar billede andersjo Nybegynder
14. januar 2005 - 13:59 #6
Slik ser koden min ut:

regnr = Request.QueryString("regnr")
tablecheck = Request.QueryString("tablecheck")
viewcheck = Request.QueryString("viewcheck")

sum = 0

for each tablecheck in Request.QueryString("tablecheck")
   
    utfortID = Split(tablecheck, "&")
   
    sum = Cdbl(sum) + Cdbl(utfortID(1)) 'Her gjøres variablene om til Double
next

response.write sum

if viewcheck<>0 then
   
    sSQL = "UPDATE SkadeInspeksjon SET Fastprisavtale='" & Clng(sum) & "' WHERE    SkadeID=" & viewcheck
    conn.Execute(sSQL)
   
end if


Når jeg summerer tallene fra utfortID(1) i sum så bruker jeg Double, og skriver jeg ut som får jeg et desimaltall. Problemet er som tidligere nevnt når sum skal legges inn i databasen.
Avatar billede tjaz Nybegynder
14. januar 2005 - 14:00 #7
Det er jeg klar over .. men hvilken type felt er "Fastprisavtale" i din database ?
Avatar billede andersjo Nybegynder
14. januar 2005 - 14:05 #8
Data type: float
Length: 8
Avatar billede tjaz Nybegynder
14. januar 2005 - 14:14 #9
lave det om til:

Data type: double
Length: 8
Avatar billede tjaz Nybegynder
14. januar 2005 - 14:15 #10
og så indsæt med

round(sum, 2)
Avatar billede andersjo Nybegynder
14. januar 2005 - 14:23 #11
Jeg er redd det vil påvirke diverse i applikasjonen og databasen. Hadde derfor håpet på å slippe å endre på feltet.
Avatar billede tjaz Nybegynder
14. januar 2005 - 14:39 #12
når du indsætter i din database ... anvender du så , eller . til at lave komma tal med ? ... for hvis du bruger , så skriver den ikke det efter

lav et en replace på din sum når du indsætter

sSQL = "UPDATE SkadeInspeksjon SET Fastprisavtale='" & replace(round(sum, 2), ",",".") & "' WHERE SkadeID=" & viewcheck
conn.Execute(sSQL)
Avatar billede tjaz Nybegynder
14. januar 2005 - 14:39 #13
og behold

Data type: float
Length: 8
Avatar billede andersjo Nybegynder
14. januar 2005 - 15:26 #14
Nå snakker vi...!!

Takk skal du ha.
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