webForumDet fria alternativet

Decimalproblem

ASPur ASP

11 svar · 534 visningar · startad av dpalsson2000

Medlem sedan maj 200230 inlägg
Frågan#1

Har föjande kod:

<% 
nbr1 = request.form("txt_nbr1")
nbr2 = request.form("txt_nbr2")
sum = cdbl(nbr1)+cdbl(nbr2) 
Response.Write sum 
%>

Om nu txt_nbr1 är 2.5 och txt_nbr2 är 3 Får jag att sum blir 28.

Varför. Vad göra?

Medlem sedan juni 200032 967 inlägg
#2

Jag gissar på att du använder fel decimaltecken.
Det beror ju lite på vilka regionala inställningar man har på servern.

Byt till kommatecken och se om det fungerar.

Mvh

Medlem sedan maj 200230 inlägg
#3

Har en koll på inmatningssidan som kóntrollerar att värdet i fältet är ett tal (i javascript(isNaN(document.all.txt_nbr1.value)) ock skriver jag då 2,5 får jag svaret att det inte är ett tal däremot går 2.5 utmärkt att skicka

Medlem sedan sep. 200350 inlägg
#4

Prova Cint(request.form("txt_nbr"))

Medlem sedan juni 200032 967 inlägg
#5

Ja, då vill javascriptet ha punkter och servern vill ha kommatecken. Du får väl byta punkt till kommatecken innan du börjar räkna med dem.

mvh

Medlem sedan juni 200032 967 inlägg
#6

grillkillen: Cint() kommer inte fungera, eftersom det gör om värdet till heltal.

Medlem sedan sep. 200350 inlägg
#7

Såsant, såsant... ibland skriver man innan man tänker..

Medlem sedan maj 200230 inlägg
#8

@nders

Om jag bytar ut punkten till ett komma tecken och sen adderar så får jag komplierings fel när jag kör sidan.

Om "tal1 = 2.5"
Verkar det som att när jag skriver CDbl(tal1) så tas punkten bort och tal1 blir 25

Medlem sedan juni 200032 967 inlägg
#9

Menar du att detta ger resultatet 28:

<% 
nbr1 = request.form("txt_nbr1")
nbr2 = request.form("txt_nbr2")
sum = cdbl(nbr1)+cdbl(nbr2) 
Response.Write sum 
%>

Och detta inte fungerar?

<% 
nbr1 = Replace(request.form("txt_nbr1"), ".", ",")
nbr2 = Replace(request.form("txt_nbr2"), ".", ",")
sum = cdbl(nbr1)+cdbl(nbr2) 
Response.Write sum 
%>

:q

Mvh

Medlem sedan maj 200230 inlägg
#10

Det verkar som problemet ligger i konverteringen från sträng till double

För skriver jag:
Tal1 = 2.5
Tal2 = 3
Summa = CDbl(Tal1) + CDbl(Tal2)

Så blir summan rätt dvs 5.5

Medlem sedan maj 200230 inlägg
#11

tack @nders

Hade skrivit fel i replace-syntaxen, nu funkar det

Medlem sedan juni 200032 967 inlägg
#12

Gräjt! :)

138 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)