08. juni 2002 - 14:41Der er
17 kommentarer og 1 løsning
decimaler
Hvordan sikrer man at der altid kun er to decimaler...jeg har en side hvor den skal regne noget moms ud, og typisk kommer den med 15-16 decimaler hvilket ikke er særlig hensigtsmæssigt...hvordan laver man en funktion som sikrer at der altid er to decimaler... fx 0.244444 = 0.24 5 = 5.00 2.1 = 2.10 osv
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
For at sikre 0'er i enden, er du nødt til at lave dit tal om til en streng (dvs. du kan ikke længere regne med det, uden først at konvertere det tilbage til et tal!)
men prøv at lure denne funktion: ---8<---------- function lavToDecimaler(tal) { talStr = tal+""; if (talStr.indexOf(".") == -1) { talStr += ".00"; } else if (talStr.indexOf(".")==talStr.length-2) { talStr += "0"; } return talStr; } ---8<----------
I øvrigt har jeg fundet en højest besynderlig fejl: Af en eller anden grund, da jeg testede med 5.02, så tror min maskine at 5.02*100 = 501.99999999999994(???)
Er der nogen der kan give mig en fornuftig forklaring på hvorfor den synes det??? :-(
det er desværre sådan at jeg er meget elendig til javascript...så jeg har lidt problemer med at få koden sat ind i min kode. Jeg har en variabel tal=document.cform.fragtgebyr.value; jeg vil så have den til at skrive værdien efter der er kommet decimaler på i et tekstfelt..men hvordan skal jeg kalde funktionen så det virker???
jeg har forsøgt at kalde funktionen når der trykkes på en knap, hvorefter den skal vise resultatet i en msgbox, men hvorfor virker denne kode ikke???: function afrund() { tal = "2.5555"; tal = (Math.round(tal*100))/100; talStr = tal + ""; if (talStr.indexOf(".") == -1) { talStr += ".00"; } else if (talStr.indexOf(".")==talStr.length-2) { talStr += "0"; } alert(talStr) //return talStr; }
Din onClick bør hedde: onClick="afrund(); return true;"
...og så skal din funktion selvfølgelig ind i en script tag(?) Alt i alt: ---8<---------- <html> <body> <script language="javascript"> <!-- function afrund() { tal = "2.5555"; tal = (Math.round(tal*100))/100; talStr = tal + ""; if (talStr.indexOf(".") == -1) { talStr += ".00"; } else if (talStr.indexOf(".")==talStr.length-2) { talStr += "0"; } alert(talStr) //return talStr; } //--> </script> <INPUT type="button" value="button" id="button1" name="button1" onClick="afrund(); return true;"> </body> </html> ---8<----------
"return true;" i slutningen af din onClick parameter er der for at give systemet signal om at du har taget hånd om onClick eventen, så systemet ikke behøver at gøre mere ved det event.
Dette er et andet eksempel på hvordan det kan gøres: <html> <head> <script language="javascript"> function rund() { num = parseFloat(document.form1.tal.value); anum = Math.floor(num*100)/100; alert(anum); } </script> </head> <body> <form name="form1"> <input type="text" name="tal"> <input type="button" name="knap" value="Afrund" onClick="rund();"> </body> </html>
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.