Avatar billede mora Nybegynder
30. september 1999 - 10:24 Der er 8 kommentarer og
1 løsning

2 decimaler

Hvordan kan jeg afrunde ved 2 decimaler?
jeg kender Math.round(feltnavn)
men den skriver et helt tal, jeg skal bruge 2 decimaler.
Avatar billede skjoldby Nybegynder
30. september 1999 - 10:59 #1
Jeg fandt noget alligevel:


<HTML><HEAD><TITLE>Form</TITLE>
<SCRIPT>

function afrunding(pris)
{
  string = "" + pris;
  number = string.length - string.indexOf('.');
  if (string.indexOf('.') == -1)
      return string + '.00';
  if (number == 1)
      return string + '00';
  if (number == 2)
      return string + '0';
  if (number > 3)
      return string.substring(0,string.length-number+3);
return string;
}

function calculate()
{
document.form_1.total.value = afrunding((document.form_1.pris.value)*(document.form_1.antal.value))

}

</SCRIPT>
</HEAD><BODY bgcolor="#ffffff" onload="calculate"><CENTER>

<FORM name="form_1" action="mailto:YOU@YOURSITE.COM" method="post">

Antal:<INPUT type="text" name="antal" ONCHANGE="calculate()"> <br>
Pris:<INPUT type="text" name="pris" ONCHANGE="calculate()"> <br>
Total<INPUT type="text" name="total"> <br>

<INPUT type="button" Value="Tryk for at regn sammen" ONCLICK="calculate()">
<INPUT type="submit" Value="Klik for at sende">
</FORM>

</BODY>
</HTML>


SKJOLDBY

Avatar billede mora Nybegynder
30. september 1999 - 11:03 #2
???
1: Det skal ikke sendet, derfor skal der IKKE være form action på, det skal bygges ind i en form og afrunde text felterne med navnene: tdktotal, sonototal, telia1total, telia2total kan du tilpasse det, eller forklare din kode herover?
Avatar billede mora Nybegynder
30. september 1999 - 11:04 #3
http://fritelefon.cjb.net -> mobil
samt
http://fritelefon.cjb.net -> internet -> med kvatalsafgift
Avatar billede justincase Nybegynder
30. september 1999 - 11:52 #4
Jeg plejer at bruge denneher :

function applyDecimals(number) {
  number = Math.round(number*100)/100;
  number = eval('"'+number+'"');
  if (number.indexOf('.') == -1) {
    number += '.00';
  }
  else {
    if (number.indexOf('.') == (number.length-2)) {
      number += '0';
    }
  }
  return number;
}

du kan kalde funktionen for hvert tal du vil have afrundet til to decimaler. Det er dog det sidste du skal gøre inden tallene bliver skrevet, da funktionen retunerer en streng.
Avatar billede mora Nybegynder
30. september 1999 - 12:01 #5
Kan jeg ikke blot bruge
math.round(document.formu.tdktotal.value*100)/100

det burde da afrunde ved 2 decimeler, da jeg ganger med 100 og runder af til et helt tal derefter divider jeg med 100?
Jeg bruger strengs over det hele.


eval(document.formu.feltnavn.value)
Avatar billede skjoldby Nybegynder
30. september 1999 - 12:04 #6
Brug funktionen:

function afrunding(pris)
{
  string = "" + pris;
  number = string.length - string.indexOf('.');
  if (string.indexOf('.') == -1)
      return string + '.00';
  if (number == 1)
      return string + '00';
  if (number == 2)
      return string + '0';
  if (number > 3)
      return string.substring(0,string.length-number+3);
return string;
}

Så ændre du sætningerne til:
formu.tdktotal.value=afrunding(eval(formu.tdksamtal.value)+eval(formu.tdkkvatal.value))

formu.sonototal.value=afrunding(eval(formu.sonosamtal.value)+eval(formu.sonokvatal.value))

formu.telia1total.value=afrunding(eval(formu.telia1samtal.value)+eval(formu.telia1kvatal.value))

formu.telia2total.value=afrunding(eval(formu.telia2samtal.value)+eval(formu.telia2kvatal.value))

etc.


Desuden kan jeg ikke få udregningen til at virke i Nerscape...
Avatar billede justincase Nybegynder
30. september 1999 - 12:06 #7
*100/100 giver afrundingen, men ikke to decimaler.

eks.

Math.round(1.12345*100)/100 = 1.12
Math.round(1.10345*100)/100 = 1.1

Derfor har du brug for selv at tilføje de ekstra nuller.
Avatar billede mora Nybegynder
30. september 1999 - 16:21 #8
Flot :-)
Avatar billede cyberesben Nybegynder
30. september 1999 - 20:55 #9
jeg vil også sige at det er bedre med en rigtig afrunding som justin har lavet hehehe
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