10. april 2002 - 14:39Der er
9 kommentarer og 1 løsning
afrundning
Jeg har lavet en afrundings funktion som følger:
<SCRIPT> function afrund(tal){ tal * 100; tal = Math.round(tal)/100; document.write(tal);
} </SCRIPT>
Den skulle gerne eksempelvis afrunde 217,1789 til 217,18 Men når den modtager tallet som paramter opfatter den det som 2 paramereter (217, 1789) og resultatet, bliver altså 217 øv øv øv.... Help me... Hvad kan jeg gøre anderledes, for at komme uden om problemet?
Hvis der er en der har en super løsning, så når jeg får ,5 at det bliver udskrevet som ,50 så øger jeg points kraftigt...
I javascipt bruges punktum ( . ) istedet for komma ( , ) som decimalpunkt (engelsk notation).
så hvis der bliver skrevet 123,456 i dit felt må du udskifte kommaet med et punktum før du prøver at fortolke tallet som tal
fx: function talFraFelt( feltobj ) var feltstreng = feltobj.value; feltstreng = feltstreng.replace( /\,/g, "." ); var felttal = parseFloat( feltstreng ); return felttal; }; //end talFraFelt( Form element objekt ) -> number
/** * Den function afrunder en streng eller et tal til * et tal med et givent antal decimaler. * 2 er sat som default! * * Man kan eventuelt med en ny function konvertere * resultatet til en streng med komma fremfor punktum. */
function roundInt(tal,decimaler) {
// tal: string (evt. med komma (,)) eller number // decimaler: 0 = 1 , 1 = 10, 2 = 100, 2 = 1000 etc ...
if (typeof tal == "string") tal = tal.replace( /\,/g, "." ); tal = parseFloat(tal); decimaler = (decimaler) ? decimaler : 100;
Det blev en kombo af det hele... Jeg fik til at virke... <SCRIPT>
function afrund(tal){ tal = tal *100; tal = Math.round(tal)/100; tal = tal +"" if (tal.indexOf(".") < 0) { tal += ".00"; } else if (tal.indexOf(".") == (tal.length-2)) { tal += "0"; }
document.write(tal); } </SCRIPT>
kalder på følgende måde <SCRIPT>afrund(<%="\""+be_pris+"\""%> )</SCRIPT>
Skriv lige som svar hvis I vil have points ellers tager jeg dem bare igen... -Det der med at bytte , ud med . blev ikke nødvendigt... ved kald som ovensteånde
Men jeg vil nu anbefale dig at lave den udskiftning alligevel. IE er berømt for sine "features" der lokker folk til at lave ukorrekt kode der så ikke virker andre steder. "se så sølle NS er, den kan ikke..."
-OK, Jacob... Det virker fint både med IE og NS, men det kan være jeg tilføjer din kode, samtidig med jeg ryder op og kommenterer det færdige resultat (-:
Synes godt om
Ny brugerNybegynder
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.