Avatar billede aso Nybegynder
21. juni 2001 - 07:48 Der er 6 kommentarer og
3 løsninger

afrunding

Hvordan afrunder jeg så resultatet bliver uden decimaler?
mit regnstykke:
document.form1.elements[v_bil].value = (2.67)*(document.form1.v_km.value)
Skal helst rundes op hvis større end 0.5
Avatar billede jespernaur Nybegynder
21. juni 2001 - 09:08 #1
Du bruger

    afrundet_resultat = Math.floor( tal + 0.5 );
Avatar billede aso Nybegynder
21. juni 2001 - 10:02 #2
Det er resultatet der skal afrundes
fx 10*2.67 = 26.7 afrundet 27

hvis jeg skriver afrundet_resultat = Math.floor( 2.67 + 0.5 ); bliver resultatet 30 - for højt

Jeg har prøvet med Math.floor. document.form1.elements[v_bil].value = (2.67)*(document.form1.v_km.value) men kan heller ikke få det til at virke?

Avatar billede nikolajdu Nybegynder
21. juni 2001 - 10:19 #3
Du skal bruge

Math.round(tal);

Math.floor - afrunder til første mindre heltal
Math.ceil  -  afrunder til første større heltal
Math.round - afrunder til det nærmeste heltal
Avatar billede aso Nybegynder
21. juni 2001 - 10:31 #4
jeg kan stadig ikke se hvor jeg skal bruge Math.round for at afrunde resultatet.

Det nytter ikke at afrunde i selve regstykket, da resultatet bliver for stort -- Math.round(2.67)

Avatar billede anjensen1 Novice
21. juni 2001 - 14:36 #5
Hejsa brug en variabel mere

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">
<HTML>
<HEAD>
    <TITLE>[Ingen titel]</TITLE>
<SCRIPT TYPE=\"text/javascript\">
function regn()
{
res=10*2.67;
ud=Math.round(res);
document.write(ud);
}
</SCRIPT>

</HEAD>
<BODY  onload=\"regn()\">



</BODY >
</HTML>
Avatar billede anjensen1 Novice
21. juni 2001 - 14:38 #6
*s* Dér fik jeg vist trykket enter
Som du kan se hvis du prøver at køre koden så bliver værdien af \'ud\' 27 mens værdien af res stadig er 26,7. Det er altså først efter en tildeling at afrundingen kan ses *s*

mvh.
Avatar billede jespernaur Nybegynder
21. juni 2001 - 22:43 #7
Du skal foretage den samlede udregning først, derefter skal afrundingen udføres, altså i tilfældet 10*2.67:

  Math.floor( 10*2.67 + 0.5 );

Mvh
Jesper Naur
Avatar billede aso Nybegynder
22. august 2001 - 07:25 #8
tak til alle tre
Avatar billede vandhunden Nybegynder
22. august 2001 - 07:44 #9
INT(tal der skal afrundes)

-det virker måske kun i vbscript
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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