Avatar billede -jesper- Nybegynder
08. december 2001 - 20:34 Der er 14 kommentarer og
2 løsninger

String-behandling af tal

Hejsa :)

Jeg forsøger at lave et script som laver noget tal-beregning udfra hvad man skriver i et input felt. Mens man så skriver i det ene felt, laver den outputtet i det andet felt.

Det andet felt kunne jeg godt tænke mig at var hele nedrundede tal (dvs. 1.2 -> 1, 2.8 -> 2 osv.). Jeg har prøvet at få det til at køre men mangler kun at kunne runde tallene ned.. Kan nogen hjælpe? :)

<script type=\"text/javascript\" language=\"JavaScript1.2\">
<!--
function Calc(f) {
    with (f)
      tal2.value = (tal1.value/100);
      tal2.value = \'??????\'
}
//-->
</script>
</head>
<body>
<form method=\"post\" name=\"form1\">
Tal 1:<input type=\"text\" name=\"tal1\" value=\"\" onkeydown=\"Calc(this.form)\" onkeyup=\"Calc(this.form)\">
Tal 2:<input type=\"text\" name=\"tal2\" value=\"\" onkeydown=\"Calc(this.form)\" onkeyup=\"Calc(this.form)\">
</form>

Hvad skal der skrives ved spørgsmåls-tegnene?
Avatar billede entracore Nybegynder
08. december 2001 - 20:36 #1
Hvad med tal2.value = Round(tal1.value/100);
Avatar billede entracore Nybegynder
08. december 2001 - 20:36 #2
eller er det en ASP funktion ... ;)
Avatar billede -jesper- Nybegynder
08. december 2001 - 20:42 #3
Så vil den slet ikke lave noget output :( .. Det er garanteret vild nemt, men jeg gir\' op.. :)
Avatar billede brita Nybegynder
08. december 2001 - 20:45 #4
næsten rigtigt:

function round(num) {
  return Math.round(num / 100)
}
Avatar billede Slettet bruger
08. december 2001 - 20:46 #5
<script>
function calc(f) {
tal = parseInt(f.tal1.value);
f.tal2.value = Math.round(tal / 100);
}
</script>
Avatar billede brita Nybegynder
08. december 2001 - 20:46 #6
eller hov er det rigtigt med decimalerne, med to decimaler er det i hvertfald sådan her:

function round(num) {
  return Math.round(num * 100 / 100)
}
Avatar billede Slettet bruger
08. december 2001 - 20:47 #7
Ja, round() er en del af Math-objektet! Og husk, at \"Math\" er med stort M (en kilde til mange, mange fejl)!
Avatar billede brita Nybegynder
08. december 2001 - 20:47 #8
det er vist bare:

function round(num) {
  return Math.round(num)
} 

nu jeg tænker mig om !!!
Avatar billede Slettet bruger
08. december 2001 - 20:48 #9
Brita>> Med to decimaler er det enten:
tal.toFixed(2);
eller
tal = (Math.round(tal * 100) / 100);
Avatar billede brita Nybegynder
08. december 2001 - 20:55 #10
det er jo præcis det jeg skriver, i hvertfald det sidste !!!
Avatar billede Slettet bruger
08. december 2001 - 21:00 #11
Nej, du vil altid få et heltal ud af din round() funktion i dit svar 08/12 2001 20:46:45
Du skla dividere med hundrede UDEN for Math.round()! :)
Avatar billede brita Nybegynder
08. december 2001 - 21:05 #12
You\'re right and I\'m sorry !!!
Avatar billede Slater Ekspert
10. december 2001 - 09:00 #13
brita>> Det første der gav ikke meget mening :)
Avatar billede -jesper- Nybegynder
08. januar 2002 - 13:29 #14
Men så runder den vel også op/ned. Jeg skal forsøge at finde en mulighed hvor den bare runder ned til nærmeste hele tal. En tanke jeg fik var at bruge nogle string-kommandoer til at fjerne alle tal-værdier efter komma f.eks. (incl. komma-tegnet).
Avatar billede Slettet bruger
08. januar 2002 - 16:08 #15
function calc(f) {
t1 = parseInt(f.tal1.value);
f.tal2.value = Math.floor(t1 / 100);
}

Denne funktion gør alt det, du beder om!
Avatar billede Slettet bruger
08. januar 2002 - 16:09 #16
P.S. Du kan fjerne \" / 100\", hvis du ikke vil have, tallet skal divideres med hundrede! Det gjorde du bare i dit eksempel, så jeg tog det med.
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