04. september 2005 - 15:28Der er
9 kommentarer og 1 løsning
Indsæt punktum hvis string over 5 bogstaver
Hej alle,
Jeg sidder her og laver et "bestillings-system". Når man "checker" et produkt af bliver prisen tilføjet til "total-prisen". Men hvis "total-prisen" er over 5 tal (altså titusende) skal den indsætte et punktum, så prisen går fra xxxxx til xx.xxx - hvis i forstår? :)
Kunne sagtens lave det i PHP, man da jeg ikke er 100% inde i JavaScript, håber jeg ik ma hjælpe mig :)
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.
Her er en funktion, der gerne skulle tage (uendelige?) store beløb:
function seperatePrice(input) {
// nogle variabler der skal bruges: var tmp = input + ""; // tmp er bare en streng, der indeholder midlertidige data var output = ""; // output er en streng, der kommer til at indeholde outputet
// Denne loop læser INPUT bagfra, dvs rækkefølgen bliver omvendt for (i=0; i < tmp.length+1; i++) // kør loopen fra 0 og til længden af INPUT, plus 1 { output = output + tmp.substr(tmp.length-i,1); // hent det sidste tegn fra INPUT if (i % 3 == 0 && i != tmp.length) { // hvis det er tredje tegn, og vi ikke er noget slutningen output = output + "."; // indsæt "." } }
// Sæt i den rigtige rækkefølge igen: tmp = output; output = ""; tmp = tmp.substring(1); // hent fra tegn 2, da tegn 1 = "." for (i=0; i<tmp.length+1;i++){ output = output + tmp.substr(tmp.length-i,1); // hent det sidste tegn fra TMP }
return output; // returner værdien }
Du skriver f.eks. bare seperatePrice(1234567890) eller f.eks. seperatePrice(12345678901234567890)..
- og ellers fandt jeg dette script blandt mine gamle 'doodlerier'. Det er måske lidt mere fleksibelt:
<script type="text/JavaScript"> function formNumb(num, us_da, numDec) { // Use 'da' or 'us' for formatting // numDec sets number of decimals var dec,decDel,milDel; num = num.split("."); if (!numDec) numDec = 2; dec = (num[1])? num[1] : ""; decDel = (us_da=="da")? "," : "."; milDel = (us_da=="da")? "." : ","; for ( var t="",num=num[0],i=num.length-3; num.length>0; i-=3 ) { t = num.substr( i ) + ((t!="")? milDel : "") + t; num = num.substr( 0, i ); } dec = (dec.length>numDec)? (parseInt(dec.charAt(numDec))>=5)? (parseInt(dec.substr(0,numDec))+1)+"" : dec.substr(0,numDec) : dec; while (dec.length<numDec) dec += "0"; return t + decDel + dec; } </script>
Formaterer et tal på formen: 123456.25 til enten:<br> [da]: 123.456,25<br> eller:<br> [us]: 123,456.25
mange fine scripts. Men gider ikke rigtig ændre scriptet nu, da jeg ved prisen ikke kan blive højere end 5 cifret, men altid rart med input, hvis jeg skal bruge en mere fleksibel funktion i fremtiden. Tak til alle :)
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.