Avatar billede para7 Nybegynder
25. december 2005 - 16:54 Der er 11 kommentarer og
2 løsninger

Regnestykke med komma og to decimaler

Tak til alle, særlig roenving. Jeg har nu, forenklet opstillet, følgende regnestykke. Hvis vi bare i første omgang kan få det til altid at give to decimaler. der kommer ved nogle tal helt vilde decimaler:

<script type="text/javascript">
function udregnPoint(SendForm) {
  var tal1 = +SendForm.Qreading.value.replace(/,/,".");
  var tal2 = +SendForm.Faktor.value.replace(/,/,".");
  var foo = "" + (tal1*tal2);
  foo = foo.replace(/\./, ",");
  SendForm.Total.value = foo;
}
</script>

<form name="form1" action="SPECfaktura.asp?id=<%=request.querystring("id")%>" method="POST">

Indtast din aflæsning: <input type='text' name='Qreading' size='5' value=''
onKeyUp='udregnPoint(this.form)' autocomplete='off'><br><br>

<input type='radio' name='DistributorStaus' value='0.01'
onClick='this.form.Faktor.value=this.value;udregnPoint(this.form)'> Status 1: Aflæsning * 0,01<br>
<input type='radio' name='DistributorStaus' value='0.02'
onClick='this.form.Faktor.value=this.value;udregnPoint(this.form)'> Status 2: Aflæsning * 0,02<br>

Dit kontingent er: kr. <input type='text' size='12' name='Total' value='0' readonly><br><br>

<input type="hidden" name="Faktor" value="">

<input type="submit" value="Send">

</form>
Avatar billede erikjacobsen Ekspert
25. december 2005 - 17:33 #1
Overvej http://www.webreference.com/javascript/reference/core_ref/math.html#1197725

SendForm.Total.value = Math.round(foo*100)/100
Avatar billede para7 Nybegynder
25. december 2005 - 18:00 #2
Det lyder som en overvejelse værd, men når jeg indsætter det, får ikke noget output:

<script type="text/javascript">
function udregnPoint(SendForm) {
  var tal1 = +SendForm.Qreading.value.replace(/,/,".");
  var tal2 = +SendForm.Faktor.value.replace(/,/,".");
  var foo = "" + (tal1*tal2);
  foo = foo.replace(/\./, ",");
  SendForm.Total.value = round(foo*100)/100
}
</script>
Avatar billede erikjacobsen Ekspert
25. december 2005 - 18:06 #3
Prøv at skrive hvad jeg skriver
Avatar billede erikjacobsen Ekspert
25. december 2005 - 18:09 #4
Og derefter dette:

  var foo = "" + (tal1*tal2);
  foo = "" + Math.round(foo*100)/100
  foo = foo.replace(/\./, ",");
  SendForm.Total.value = foo;

Det dur jo ikke at gøre det på et ","-tal
Avatar billede para7 Nybegynder
25. december 2005 - 18:34 #5
OK, selvfølgelig dur det ikke på kommatal. Hvad er det jeg skal skrive først, som du skriver da?
Avatar billede para7 Nybegynder
25. december 2005 - 18:41 #6
OK. Det her sammenkog virker, men der er ikke to decimaler, når man ender på ,90:

<script type="text/javascript">
function udregnPoint(SendForm) {
  var tal1 = +SendForm.Qreading.value;
  var tal2 = +SendForm.Faktor.value;
  var foo = "" + (tal1*tal2);
  foo = "" + Math.round(foo*100)/100
  foo = foo.replace(/\./, ",");
  SendForm.Total.value = foo;
}
</script>
Avatar billede para7 Nybegynder
25. december 2005 - 18:44 #7
Eller bare ikke to decimaler, hvis det ender på nul. Men det er langt bedre.
Avatar billede roenving Novice
25. december 2005 - 19:01 #8
Måske kan du bruge denne funktion:

function afrund(tal){
  if(isNaN(tal))return "0,00";
  tal = ""+(Math.round(tal*100))/100;
  punktum = tal.indexOf(".");
  if (punktum==-1)return tal+".00";
  if (tal.length-punktum==3)return tal;
  else return tal+"0";
}

F.eks.

  foo = afrund(foo).replace(/\./, ",");
Avatar billede para7 Nybegynder
25. december 2005 - 19:25 #9
Hov, den var go'. Nu ligner det noget.
Send lige svar begge to for point.
Jeg mangler lige en funktion og åbner derfor et nyt spm ang. at udtage en del af value fra formen, hvor der er tekst og tal sammensat.
Avatar billede erikjacobsen Ekspert
25. december 2005 - 19:37 #10
Ingen point til mig, tak.
Avatar billede roenving Novice
25. december 2005 - 19:42 #11
Behold selv en del point, for jeg skal jo  ikke have eriks !-)

Velbekomme '-)
Avatar billede para7 Nybegynder
26. december 2005 - 09:53 #12
Tak for al den beskedenhed :)
Avatar billede roenving Novice
26. december 2005 - 14:09 #13
*lol*

-- og tak for point ;~}
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