Avatar billede hehlers Nybegynder
07. januar 2010 - 12:49 Der er 8 kommentarer og
1 løsning

ASP afrundingsfunktion

Hejsa

Jeg har forsøgt at fedte med lidt afrunding i asp. Desværre uden held.

Eks. - Man har nogle kasser med skruer som sælges med 100 stk i hver. Jeg har lavet en lille beregningsfunktion, som regner frem til, at man eks. skal bruge 420 skruer. Jeg skal derfor have afrundet disse op til antal hele kasser af 100 stk. Dvs. hvis tallet er 500 skal der stå 5 kasser og hvis tallet er 501 skal der stå 6 kasser.

Håber det giver lidt mening.

På forhånd tak.

mvh

Henrik
Avatar billede softspot Forsker
07. januar 2010 - 12:59 #1
Jeg kunne forestille mig noget i stil med dette:

oensketAntal = 501
antalIKasse = 100
antalKasser = clng(oensketAntal / antalIKasse)
if oensketAntal mod antalIKasse <> 0 then
  antalKasser = antalKasser + 1
end if
Avatar billede hehlers Nybegynder
07. januar 2010 - 13:19 #2
Hej softspot,

Tak for det, - det begynder at ligne noget. Nogle tal fungerer, andre desværre ikke... Hvis kunden eks. skal bruge 80 skruer (så bliver det 2 kasser) og 280 skruer bliver til 4 kasser.

mvh

Henrik
Avatar billede softspot Forsker
07. januar 2010 - 13:25 #3
Jeg har en rettelse til mit første foreslag (da clng rent faktisk foretager en afrunding, hvilket jeg ikke lige var opmærksom på :-)). Derfor kan du bruge denne funktion i stedet:

function findAntalKasser(oensketAntal, antalIKasse)
    dim antalKasser
   
    antalKasser = int(oensketAntal / antalIKasse)
    if oensketAntal mod antalIKasse <> 0 then
      antalKasser = antalKasser + 1
    end if

    findAntalKasser = antalKasser
end function


og den kaldes således:

response.write findAntalKasser(80,100)
response.write findAntalKasser(280,100)


hvilket så gerne skulle resultere i 1 kasse hhv. 3 kasser.

Alternativt kan du bruge denne lidt mere gustne funktion:

function findAntalKasser(oensketAntal, antalIKasse)
    findAntalKasser = int((oensketAntal + antalIKasse - 1) / antalIKasse)
end function


som kaldes på samme måde som den første.
Avatar billede hehlers Nybegynder
07. januar 2010 - 13:45 #4
WUHUUU! Så virker det vist.

Tusind tak! - Svarer du lige?
Avatar billede softspot Forsker
07. januar 2010 - 13:45 #5
Velbekomme :-)
Avatar billede softspot Forsker
07. januar 2010 - 14:11 #6
Tak for point :)
Avatar billede hehlers Nybegynder
07. januar 2010 - 14:25 #7
Bare lige en enkelt tilføjelse...

Hvad gør det her kald egentlig?
findAntalKasser(80,100)
(sikkert et dumt spørgsmål) - og hvis jeg vil have oprundet til hele kasser af 25 istedet for 100, skal jeg så ændre noget i den?

PFT

Henrik
Avatar billede softspot Forsker
07. januar 2010 - 14:52 #8
første parameter er det antal enheder der skal bruges, f.eks. 80 skruer, og anden parameter er det antal der er i en kasse, f.eks. 100 skruer i hver kasse.

Derfor skal du ved kasser med 25 enheder blot ændre anden parameter til 25 i stedet for 100. Eksempelvis:

findAntalKasser(80,25)

som så gerne skulle resultere i 4 kasser :-)
Avatar billede hehlers Nybegynder
07. januar 2010 - 15:00 #9
Jamen fantastisk. Tak igen!
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