webForumDet fria alternativet

Decimalproblem

11 svar · 534 visningar · startad av dpalsson2000

dpalsson2000Medlem sedan maj 200230 inlägg
#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?

@ndersMedlem sedan juni 200026 914 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

dpalsson2000Medlem 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

grillkillenMedlem sedan sep. 200350 inlägg
#4

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

@ndersMedlem sedan juni 200026 914 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

@ndersMedlem sedan juni 200026 914 inlägg
#6

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

grillkillenMedlem sedan sep. 200350 inlägg
#7

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

dpalsson2000Medlem 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

@ndersMedlem sedan juni 200026 914 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

dpalsson2000Medlem 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

dpalsson2000Medlem sedan maj 200230 inlägg
#11

tack @nders

Hade skrivit fel i replace-syntaxen, nu funkar det

@ndersMedlem sedan juni 200026 914 inlägg
#12

Gräjt! :)

Genererad på 382 ms · cache AV · v20260730165559-full.f96bc7eb