Avatar billede angelenglen Nybegynder
26. juni 2005 - 21:54 Der er 13 kommentarer og
1 løsning

Matematik - tal skal gå op i 5

jeg har brug for noget matematik, der kan hjælpe mig med at få afrundet tilfældige tal, således at de går op i 5..
-dvs de skal altid ende på 0 eller 5.

hvis jeg eksempelvis har nogle tal, skal de alle kunne gå igennem formlem eller hvad i nu finder på, og ende som et tal der går helt op i 5.

De fleste tal vil nok være mellem 170 og 1800 - Aldrig under 10.
Avatar billede angelenglen Nybegynder
26. juni 2005 - 21:54 #1
Ps. det skal bruges i et Visual Basic 6 program, så hvis dét giver nogle lettere muligheder, skal i være velkommen til at benytte det.
Avatar billede erikjacobsen Ekspert
26. juni 2005 - 21:57 #2
Hvis dine tal skal være mellem 10 og 1800, så lav tilfældige tal mellem 2 og 360, og gang dem så med 5.
Avatar billede angelenglen Nybegynder
26. juni 2005 - 22:03 #3
tallene er ikke desværre helt tilfældige, de indtastes af brugeren - men jeg kan ikke vide hvorimellem 170 og 1800 tallet ligger.
Avatar billede vejmand Juniormester
26. juni 2005 - 22:25 #4
I Excel:

Tallet står i feltet A1
=MAFRUND(A1;5)

Returnerer et tal afrundet til det ønskede multiplum.

Hvis denne funktion ikke er tilgængelig, skal du køre installationsprogrammet for at installere Analysis ToolPak. Når Analysis ToolPak er installeret, skal du aktivere programmet ved hjælp af kommandoen Tilføjelsesprogrammer i menuen Funktioner.
Avatar billede angelenglen Nybegynder
26. juni 2005 - 22:46 #5
jeg har desværre ikke excel :-(
Avatar billede erikjacobsen Ekspert
26. juni 2005 - 22:47 #6
Ok, så. Jeg har ikke adgang til VB6, men gammeldags ASP er vistnok li'så godt på dette punkt. Her er en lille stump:

  for i=1000 to 1100
    j = cint(i/5)*5
    response.write i & "->" & j & "<br>"
  next

som udskriver

1000->1000
1001->1000
1002->1000
1003->1005
1004->1005
1005->1005
1006->1005
1007->1005
1008->1010
1009->1010
1010->1010
1011->1010
1012->1010
1013->1015
...

Er det sådan ca. hvad du skal have?
Avatar billede angelenglen Nybegynder
26. juni 2005 - 22:56 #7
jep præcist!
-hvis du smidder et svar, så lukker jeg her :-)
Avatar billede erikjacobsen Ekspert
26. juni 2005 - 22:59 #8
Jeg samler slet ikke på point, tak. Du skal formentlig svare selv, og acceptere eget svar.
Avatar billede angelenglen Nybegynder
26. juni 2005 - 23:00 #9
hehe fair nok :-)
Avatar billede Slettet bruger
27. juni 2005 - 15:50 #10
Ved godt spørgsmålet er afsluttet, Men hvorfor ikke benytte:

result = mitTal - (mitTal mod 5)

Ved godt at erikjacobsen's metode virker - er bare nysgerrig hvorfor man ikke valgte at løse problemet med rest-division.
Avatar billede angelenglen Nybegynder
27. juni 2005 - 15:52 #11
jeg vil tro det er fordi jeg ikke kendte den funktion :-)
Avatar billede erikjacobsen Ekspert
27. juni 2005 - 18:24 #12
Det giver ikke det samme resultat. Min metode får "af(op)rundet" til det nærmeste tal, hvor 5 går op.
Din metode vil fx for 1004 giv 1000 i stedet for mit 1005.

Hvilken metode, der så skal bruges, ved jeg så ikke.
Avatar billede angelenglen Nybegynder
27. juni 2005 - 21:59 #13
I det tilfælde var erikjacobsen's metode nok den bedste, eftersom jeg er interesseret i det tal der er tættest på det input jeg får af brugeren.

-men jeg kan godt se at den anden metode kunne være brugbar i mange tilfælde, som fx til at se om et tal er lige eller ej...( if (mitTal mod 2) = 0 then "taller er lige") - nice :-)
Avatar billede angelenglen Nybegynder
27. juni 2005 - 22:00 #14
*argh* der mangler en "rediger indlæg" funktion her - så man kan rette stavefejl :-)
-mente naturligvis "Tallet er lige".
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
Computerworld tilbyder specialiserede kurser i database-management

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