Avatar billede hoppe11 Nybegynder
26. januar 2010 - 13:04 Der er 7 kommentarer og
1 løsning

int med tusind seperation

hvordan kan man lave en integer eller string med tusind seperation?

var str = int.toString();

jeg har fået lavet min integer til en string og er så ikke kommet videre :)

eks.
999555111.44 => 999.555.111,44
Avatar billede hoppe11 Nybegynder
26. januar 2010 - 13:06 #1
ps.
integeren kan også godt være negativ
Avatar billede janus_007 Nybegynder
26. januar 2010 - 13:19 #2
En integer er af natur et heltal og kan derfor aldrig repræsenteres med komma.

Brug parseInt :)

Hvis du ønsker tusindtalseperatorer skal du selv lave det, eller evt. kigge på jQuery eller js-toolbox der findes vidst allerede nogle metoder :)
Avatar billede hoppe11 Nybegynder
26. januar 2010 - 16:40 #3
skrev jo også at jeg kun havde fået lavet min integer til en string :)

men her er noget

function str_num(int, no_sep)
{
    var dec_sep = ',';
    var thous_sep = '.';
   
    if(!isNaN(int) && int != 0)
    {
        var num = int.toString();
       
        if(no_sep) num = num.replace('.', dec_sep);
        else
        {
            var str = '';
            var num_arr = num.split('.');
           
            var a = num_arr[0];
            var b = num_arr[1];
            var z = '';
            for(var i=a.length-1; i>=0; i--) z += a.charAt(i);
           
            z = z.replace(/(\d{3})/g, '$1'+thous_sep);
            if(z.slice(-1) == thous_sep) z = z.slice(0, z.length-1);
           
            for(var i=z.length-1; i>=0;i--) str += z.charAt(i);
            str += dec_sep;
           
            if(b)
            {
                for(var i=0; i<2; i++) str += b.charAt(i) ? b.charAt(i):'0';
            }
            else str += '00';
           
            num = str;
        }
       
        return num;
    }
    else return '';
}
Avatar billede janus_007 Nybegynder
26. januar 2010 - 20:33 #4
At lave en algoritme til den slags er måske lige overdrevent nok og lidt spild af tid :)

Jeg fiflede en regular expression sammen til dig:

(-?[0-9]+)([0-9]{3})

Test den her: http://www.gskinner.com/RegExr/

Vælg fanen Replace, skriv regex'en øverst, herefter skriver du match collectionen :

$1, $2

Og i den store box skriver du eks.vis 100000.25 og tilbage får du : 100,000.25


Et par linjer i Javascript fylder det formodentligt :)
Avatar billede hoppe11 Nybegynder
05. februar 2010 - 23:44 #5
jeg forstår ikke helt hvordan man smider det ind!? får det i hvert fald ikke til at virke
Avatar billede hoppe11 Nybegynder
05. februar 2010 - 23:45 #6
hov.. mig der ikke gjorde det rigtigt..

men den tager kun en tunsindadskillelse.. :)
Avatar billede hoppe11 Nybegynder
06. februar 2010 - 11:21 #7
jeg fandt et pattern under community på siden :)

replace(/\d{1,3}(?=(\d{3})+(?!\d))/g, '$&'+THOUSANDS_SEP);

smid et svar janus
Avatar billede janus_007 Nybegynder
12. marts 2010 - 12:36 #8
Bedre sent end aldrig :)
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