Avatar billede clausn Nybegynder
16. marts 2006 - 15:45 Der er 7 kommentarer og
1 løsning

Regne med kommatal

Hej eksperter,

Jeg har siddet og prøvet at få mit lille script til at virke:

<script>
function regnfor(){

  var Tal1       = document.regn.tal1.value;
  var Tal1Convert = Tal1.replace(",", ".");

  var Tal2       = document.regn.tal2.value;
  var Tal2Convert = Tal2.replace(",", ".");

  var Tal3       = document.regn.tal3.value;
  var Tal3Convert = Tal3.replace(",", ".");

  //var Tal1 = document.regn.tal1.value.replace(",", ".");
  //var Tal2 = document.regn.tal2.value.replace(",", ".");
  //var Tal3 = document.regn.tal3.value.replace(",", ".");

  regn.total.value = parseFloat(Tal1Convert)+parseFloat(Tal2Convert)+parseFloat(Tal3Convert);
  //regn.total.value = parseInt(""+Tal1Convert+Tal2Convert+Tal3Convert);
}

</script>

<form name="regn">
<input id="tal1" onblur="regnfor(this.form)"><br>
<input id="tal2" onblur="regnfor(this.form)"><br>
<input id="tal3" onblur="regnfor(this.form)"><br>
<input id="tal4" onblur="regnfor(this.form)"><br>
<input id="tal5"><br>
<input id="total"><br>
<input type="button" value="Regn, regn" onclick="regnfor()">
</form>

Desværre kan den bare ikke regne med kommatal - er der en venlig sjæl der kan komme med en kommentar til hvorfor?

Jeg har prøvet med parseInt() og parseFloat() forskellige steder, men kan ikke rigtigt finde hoved og hale i det.

Hilsen
Claus
Avatar billede farving Nybegynder
16. marts 2006 - 15:47 #1
du kan bare gange tallet med 100 først dvs du får kommaerne som hele tal, som du regner med, og så dividerer du dem ud igen?

Ellers hvis det er fordi den ikke fanger i dine input så skal du bruge engelsk komma dvs "."
Avatar billede clausn Nybegynder
16. marts 2006 - 15:58 #2
Hej,

Jeg har leget lidt:

<script>
function regnfor(){

  var Tal1      = document.regn.tal1.value*100;
  var Tal2      = document.regn.tal2.value*100;
  var Tal3      = document.regn.tal3.value*100;

  var TotalTal = (Tal1+Tal2+Tal3);

  regn.total.value = TotalTal/100;

}
</script>

Dette virker også meget godt, men jeg kan jo ikke lære alle, at de skal skrive punktum i stedet for komma.

Claus
Avatar billede clausn Nybegynder
16. marts 2006 - 16:01 #3
Så virker det :)

<script>
function regnfor(){

  var Tal1Input  = document.regn.tal1.value.replace(",", ".")
  var Tal2Input  = document.regn.tal2.value.replace(",", ".")
  var Tal3Input  = document.regn.tal3.value.replace(",", ".")

  var Tal1      = Tal1Input*100;
  var Tal2      = Tal2Input*100;
  var Tal3      = Tal3Input*100;

  var TotalTal = (Tal1+Tal2+Tal3);

  regn.total.value = TotalTal/100;

}
</script>
Avatar billede clausn Nybegynder
16. marts 2006 - 16:02 #4
farving: Hvis du vil have et par points for hjælpen, så sig til... :)
Avatar billede farving Nybegynder
16. marts 2006 - 16:04 #5
jow det kan du godt, enten ved at skrive at de skal bruge det, eller

indsæt første del af koden indtil var TotalTal

if (Tal1 == isNaN) {
alert("husk at bruge engelsk komma");
return
}
else if (Tal2 == isNaN) {
alert("husk at bruge engelsk komma");
return
}
else if (Tal3 == isNaN) {
alert("husk at bruge engelsk komma");
return
}
else {
var TotalTal... resten af din kode
}
Avatar billede farving Nybegynder
16. marts 2006 - 16:05 #6
sådan kunne man også sætte det op, men nej du fandt jo selv et svar ;)
Avatar billede clausn Nybegynder
16. marts 2006 - 16:12 #7
Syntes bare det er totalt ikke-brugervenligt at komme med sådan nogle alert beskeder fordi vedkommende bag siden ikke kan lave den ordenligt...

:)
Avatar billede farving Nybegynder
16. marts 2006 - 16:14 #8
tjae det kan der også være noget om, men folk husker det vel...
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