Avatar billede chaser64 Nybegynder
11. august 2004 - 16:13 Der er 10 kommentarer og
1 løsning

Problemer med oprundning af tal

Hej,
Jeg har lavet et system, hvor folk skal indtaste et tal, f.eks. 134,4, og systemet skal så sige 140, 141,5 laver den til 150 osv. Det gøres med følgende script

tal = CDbl(request("bredde"))
if tal mod 10 <> 0 then
bredde_mod = (int(tal/10)+1)*10
else
bredde_mod = tal
end if

Det virker fint ved alle ting, undtagen 0,5 omkring tallet. Skriver man 139,4 skriver den 140, men ved 139,6, skriver den 139,6. Det samme ved 140,2, hvorimod den ved 140,6 rigtigt skriver 150.

Nogen der kan finde denne fejl?

Pft
Avatar billede goose Nybegynder
11. august 2004 - 16:16 #1
Prøv med:

tal = formatnumber(CDbl(request("bredde")),0)
if tal mod 10 <> 0 then
bredde_mod = (int(tal/10)+1)*10
else
bredde_mod = tal
end if

/Goose
Avatar billede goose Nybegynder
11. august 2004 - 16:18 #2
ups, så ikke lige den skulle runde op til nærmeste 10'er, så det er ikke sikkert du kan bruge mit forslag :o(

/Goose
Avatar billede cesil Nybegynder
11. august 2004 - 16:25 #3
nu sidder jeg ikke et sted hvor jeg kan afproeve min teori, men jeg ville proeve saadan her.

tal = cint(tal)
tal2 = tal mod 10
bredde_mod = (tal - tal2) + 10

Giver det mening?
Avatar billede fennec Nybegynder
11. august 2004 - 16:30 #4
tal = int(CDbl(request("bredde")))
tal = (tal - (tal mod 10)) + 10
Response.write tal
Avatar billede fennec Nybegynder
11. august 2004 - 16:31 #5
Hejsa cesil
Har du det godt i England???

Det var vist samme løsning som dig jeg kom med :o)
Avatar billede cesil Nybegynder
11. august 2004 - 16:36 #6
Hej fennec
Det gaar fint nok her. Hvad med dig, har du styr paa sagerne.
Jo det er vist samme ide vi havde der. Din er lidt paenere.
Avatar billede fennec Nybegynder
11. august 2004 - 16:44 #7
Jeg er lidt presset i øje blikket. Jeg har slet ikke fået arbejdet på Greenline endnu. Vi har lige afleveret MAX'en, og der er nogle problemer med mail nede ved dem. Jeg tror ikke jeg overhoved får lavet noget på Greenline, inden næste uge....

Og der er foresten også problemer med mail i pi-club....
Avatar billede eagleeye Praktikant
11. august 2004 - 16:48 #8
fennec >> den virker kun hvis 140 må blive til 150.

chaser64 >> Dit problem er at MOD ikke virker som forvendtet på Dobbelt-tal, så prøv at lave din kode sådan her:

tal = request("bredde")
if int(tal)<Cdbl(tal) then
bredde_mod = (int(tal/10)+1)*10
else
bredde_mod = tal
end if
Avatar billede eagleeye Praktikant
11. august 2004 - 16:55 #9
den sidste bur heller ikke når jeg lige tænkre over det :)
139 skal jo være 140..
Avatar billede eagleeye Praktikant
11. august 2004 - 17:02 #10
Det skal nok være en kombination, så prøv sådan her:

tal = request("bredde")
if tal mod 10>0 or int(tal)<Cdbl(tal) then
bredde_mod = (int(tal/10)+1)*10
else
bredde_mod = tal
end if
Avatar billede chaser64 Nybegynder
11. august 2004 - 17:17 #11
Tak for hjælpen allesammen, det var Eagleeyes sidste forslag der virkede 100%.

/Casper
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