<% Om decemalseparatorn i tal1 och tal2 skiljer sig från servern kan det strula eftersom CDbl använder decimalseparator för kontot. Fungerar utmärkt när man bytar ut "." mot ",".Decimalproblem!!!
Tar emot två decimaltal från olika textrutor, ska sedan addera dessa tal och spara summan i en ny variabel men värdet blir fel.
Tex:
tal1 : 3.5
tal2 : 2
summa = cdbl(tal1) + cdbl(tal2)
då blir summan 37
Hur löser jag detta?Sv: Decimalproblem!!!
Dim Summa, Tal1, Tal2
Tal1 = "3.5"
Tal2 = "2"
Summa = cdbl(Tal1)+cdbl(Tal2)
Response.Write Summa
%>
detta ger följande resultat:
5.5
är dina tal1 och tal2 strängar?Sv: Decimalproblem!!!
Jag hämtar värdena från en annan sida med hjälp av Request.Form("tal1") och samma med tal2.
Det är då problemen uppstår.Sv: Decimalproblem!!!
Du kan lösa det genom att använda Val vilket utgår från punkt som decimalseparator.
<code>
Function FixNumber(Value)
FixNumber = Val(Replace(Value, ",", "."))
End Function
Summa = FixNumber(tal1) + FixNumber(tal2)
</code>
Kan ge problem om du använder punkt eller komma som tusen avgränsare. Men det är inte så vanligt.Sv: Decimalproblem!!!
<code>
intTal1 = Replace(request.form("txtTal1"), ".", ",")
intTal2 = Replace(request.form("txtTal1"), ".", ",")
intSumma = CDbl(intTal1) + CDbl(intTal2)
</code>
Resultatet blir då:
3.2 + 3.2 = 6,4
Detta värde kan jag spara ner i databasen.
När jag sedan hämtar värdet från databasen till en textruta i applikationen igen, bytar jag ut "," till "." igen.
<code>
intSumma = Replace(RS("Summa"),",",".")
</code>
Tack för tipset!