25. september 2006 - 10:48
Der er
7 kommentarer og 1 løsning
Nummer formatering
Hej, Hvordan får jeg formmateret 9999.99999999999 Til et dansk formateret tal, dvs. Punktum for hvert 1000, og , v. decimal, samt afrundet, så ovenstående tal bliver til: 10.000,00 Og så 14524.548614 bliver til 14.524,55 På forhånd tak.
Annonceindlæg fra Barco
25. september 2006 - 12:09
#1
Prøv med: function formatNumber( number ) { var tmp = ( Math.round( number * 100 ) / 100 ).toString(); var tmpint = tmp.substr(0,tmp.indexOf('.')); var tmpfrac = tmp.substr(tmp.indexOf('.')+1); if (tmpfrac.length==1) tmpfrac += '0'; var cnt = 0; var len = tmpint.length; tmp = ''; for ( i = len - 1; i >= 0; i -= 1 ) { if ( cnt % 3 == 0 && tmp != '' ) tmp = '.' + tmp; cnt++; tmp = tmpint[i] + tmp; } return tmp + ',' + tmpfrac; }
26. september 2006 - 13:04
#2
Og en anden vej ind: <script type="text/javascript"> function ins1000Sep(val){ val = val.split(","); val[0] = val[0].split("").reverse().join(""); val[0] = val[0].replace(/(\d{3})/g,"$1."); val[0] = val[0].split("").reverse().join(""); val[0] = val[0].indexOf(".")==0?val[0].substring(1):val[0]; return val.join(","); } function rem1000Sep(val){ return val.replace(/\./g,""); } function afrund(tal){ if(isNaN(tal))return "0,00"; tal = (""+(Math.round(tal*100))/100).replace(/\./,","); punktum = tal.indexOf(","); if (punktum==-1)return tal+",00"; if (tal.length-punktum==3)return tal; else return tal+"0"; } </script> -- og kaldet kunne f.eks. være: var formatteretTal = ins1000Sep(afrund(tal));
23. oktober 2006 - 09:24
#3
roenving: Læg et svar. coderdk: Din bugger lidt med forskellige tal og 0-værdier.
23. oktober 2006 - 10:04
#4
hehe ok
23. oktober 2006 - 10:06
#5
Afvis lige mit svar, så du ikke kommer til at acceptere - Hvilke tal buggede den ved?
24. oktober 2006 - 22:20
#6
Oki '-)
25. oktober 2006 - 06:55
#7
coderdk: Kan ikke huske det helt præcist. Men kan huske at ved 0 skrev den kun ,00
26. oktober 2006 - 01:51
#8
TAk for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling