Avatar billede moejensen Nybegynder
04. januar 2004 - 14:16 Der er 17 kommentarer og
1 løsning

komma i stedet for punktum i resultat

jeg har en javascript beregning, der returnere ex følgende resultat 25.4, men hvad gør jeg hvis jeg gerne vil have at den returnere 25,4??
Avatar billede roenving Novice
04. januar 2004 - 14:18 #1
Sådan noget ?-)

<script language="javascript" type="text/javascript">
function makeNumber(tal){
tal = ""+tal;
  if (tal.indexOf(",")>-1){
    komma = tal.indexOf(",");
    return parseFloat(tal.substring(0,komma)+"."+tal.substring(komma+1));
  }else return parseFloat(tal)
}
function afrund(tal){
  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";
}
function udregn(n){
var p=eval('document.minform.pris'+n);
var a=eval('document.minform.antal'+n);
var i=eval('document.minform.ialt'+n);
i.value=afrund(makeNumber(p.value)*makeNumber(a.value));
}
</script>
Avatar billede moejensen Nybegynder
04. januar 2004 - 14:22 #2
skal der så meget til bare for at skifte et "." med ","
Avatar billede thesurfer Nybegynder
04. januar 2004 - 14:24 #3
Kan man ikke bare bruge?:
resultat = resultat.replace(".",",");
Avatar billede thesurfer Nybegynder
04. januar 2004 - 14:28 #4
f.eks.:

resultat = resultat.replace(".",",");
document.frmRegn.pris.value=resultat;

Bare et eksempel..
Avatar billede thesurfer Nybegynder
04. januar 2004 - 14:28 #5
frmRegn er navnet på formen.. :)
jeg plejer at skrive: document.FORMNAVN.FELTNAVN.value=resultat;
Avatar billede moejensen Nybegynder
04. januar 2004 - 14:30 #6
den har jeg prøvet, men der får jeg en fejl.

Object does not support this methos or propertie
Avatar billede roenving Novice
04. januar 2004 - 14:30 #7
Grunden til at jeg har lavet så meget er, at man oftest har brug for den slags i forbindelse med beløb, så den korrekte afrunding er et must !-)
Avatar billede roenving Novice
04. januar 2004 - 14:31 #8
Hvis man 'bare' skal replace, skal man brueg en RegExp sådan:

resultat = resultat.replace("/\./g",",");
Avatar billede roenving Novice
04. januar 2004 - 14:34 #9
-- og min metode smidt ind i en hel formular:

(Lavet til et bestemt spørgsmål for et halvt år siden, så den er som den er !-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<title>Beregn og afrund</title>

<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/446911">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
function makeNumber(tal){
  tal = ""+tal;
  if(!tal.match(/^[\d\.\,]+$/))return 0;
  if (tal.indexOf(",")>-1){
    komma = tal.indexOf(",");
    return parseFloat(tal.substring(0,komma)+"."+tal.substring(komma+1));
  }else return parseFloat(tal)
}
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";
}
function udregn(n){
var p=document.minForm.elements['pris'+n];
var a=document.minForm.elements['antal'+n];
var i=document.minForm.elements['ialt'+n];
i.value=afrund(makeNumber(p.value)*makeNumber(a.value));
}
</script>
</head>
<body>
<form name='minForm'>
Pris 1: <input type='text' name='pris1'>&nbsp;Anta1: <input type='text' name='antal1' onblur="udregn(1)">&nbsp;Ialt: <input disabled type='text' name='ialt1' style="background:#faa"><br>
Pris 2: <input type='text' name='pris2'>&nbsp;Anta1: <input type='text' name='antal2' onblur="udregn(2)">&nbsp;Ialt: <input disabled type='text' name='ialt2' style="background:#faa"><br><br><br>
Resultat:
<input disabled type='text' name='samlet' style="background:#faa">
<br>
<input type='button' value='Udregn' onclick='udregn(1);udregn(2);this.form.samlet.value=afrund(parseFloat(this.form.ialt1.value)+parseFloat(this.form.ialt2.value));'>
</form>
</body>
</html>
Avatar billede moejensen Nybegynder
04. januar 2004 - 14:36 #10
Jeg skriver følgende: msg = "Din BMI er: " + bmi.replace("/\./g",","); + "<br><br>";

BMI indeholder resultatet der ex er 24.5
og får følgende fejl: Runtime error
Avatar billede roenving Novice
04. januar 2004 - 14:46 #11
Fordi du selvfølgelig skal have det som tekst, hvis du skal udskifte en del af tallet !-)

bmi = "" + bmi;
msg = "Din BMI er: " + bmi.replace("/\./g",","); + "<br><br>";
Avatar billede moejensen Nybegynder
04. januar 2004 - 14:50 #12
det kommer stadig ud med punktum :-(
Avatar billede roenving Novice
04. januar 2004 - 14:52 #13
Nåeh, ja:

bmi = "24.5";
var msg = "Din BMI er: " + bmi.replace(/\./g,","); + "<br><br>";
alert(msg);
Avatar billede moejensen Nybegynder
04. januar 2004 - 14:56 #14
så virker det, tak for hjælpen, laver du lige et svar
Avatar billede roenving Novice
04. januar 2004 - 15:03 #15
-- og med en tekst-streng virker thesurfers udgave også:

bmi.replace(".",",") ...

-- velbekomme '-)
Avatar billede thesurfer Nybegynder
04. januar 2004 - 15:11 #16
hehe.. hvorfor så ikke bruge det fra starten af? :)

hmm...
Jeg skrev jo at det skulle være:
resultat = resultat.replace(".",",");
document.FORMNAVN.FELTNAVN.value=resultat;

og moejensen skrev jo:
"den har jeg prøvet, men der får jeg en fejl.

Object does not support this methos or propertie"

?
Avatar billede thesurfer Nybegynder
04. januar 2004 - 15:13 #17
ahhh... han troede at det SKULLE stå "resultat.replace", og ikke at det var variablen der indeholdte resultatet, jeg mente..? :)
Avatar billede moejensen Nybegynder
04. januar 2004 - 15:13 #18
duhavde ikke skrevet at jeg skulle konvertere til en string, derfor kunne jeg ikke få det til at virke
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