Formatering av tall

Diskusjoner om Flash, mulitimedia og actionscripting.

Formatering av tall

Innlegg thh022 » 26.01.2010 19:31

I et prosjekt jeg jobber med ønsker kunden å vise tall slik (mellomrom) for at de skal bli enklere å lese:

1 125 000
330 000
2 350
20 750 000

I databasen er disse tallene lagret som 1125000, 330000, 20750000, og 2350.

Noen som vet om en måte å vise tallene med mellomrom?
thh022
Medlem
 
Innlegg: 565
Registrert: 20.03.2006 20:18
Bosted: Tromsø

Re: Formatering av tall

Innlegg DavidS » 26.01.2010 23:18

Det du sier er at du ønsker å gruppere tre og tre siffer, fra høyre til venstre.?

Kode: Merk alt
/**
 * Groups a number based on $step
 * @author    David Steinsland / norskwebforum.no
 * @param    integer    $num
 * @param    integer    $step
 * @param    string    $glue
 * @return    string
 */
function group_num ($num, $step = 3, $glue = ' ')
{
    // Counts number length
    $length = strlen ($num);
    
    
// The length has to be of a higher value than $step
    if ($length < ($step + 1)) {
        return $num;
    }
    
    
// We finds the modulo -- the offset -- of which we'll begin splitting
    // our number in chunks. 
    // Example: 1000 % 3 = 1, because there is one number left after we've "taken" away three.
    $offset = $length % $step;
    
    
// Length of each chunk is set by $step
    $groups = str_split (substr ($num, $offset), $step);
    
    
// Let's glue the chunks together! But first, we have to include the first group of number(s) ...
    return substr ($num, 0, $offset) . $glue . implode ($glue, $groups);
}

echo group_num (123); // 123
echo group_num (1234); // 1 234
echo group_num (123456); // 123 456
echo group_num (1234567); // 1 234 567    


Steike deg! Er så vant til å kommentere i PHP-seksjonen, at jeg rett og slett ikke la merke til at dette gjaldt AS/Flash.. Vel, du skjønner vel prinsippet?
Sist endret av DavidS den 27.01.2010 19:54, endret 1 gang
DavidS
Seniormedlem
 
Innlegg: 3667
Registrert: 17.05.2006 17:08

Re: Formatering av tall

Innlegg datastol » 27.01.2010 14:40

Gjøre tallene til string variabler, bruke split funksjonen og legge inn mellomrom.. :?:
Brukerens avatar
datastol
Medlem
 
Innlegg: 31
Registrert: 01.04.2009 17:49
Bosted: Birkeland

Re: Formatering av tall

Innlegg DavidS » 27.01.2010 15:38

Nå kjenner ikke jeg ActionScript-syntaks, men i bunn og grunn: ja (på en måte).

1. Telle lengden, finne modulo (restsummen) etter å delt med 3
2. Hente ut tallene fra plasseringen vi fant i pkt. 1
3. Splitte tallene fra pkt. 2 i grupper med tre tall i hver (siden lengden er delelig med 3, vil alle gruppene bli "fulle")
4. Lime alt sammen igjen.
DavidS
Seniormedlem
 
Innlegg: 3667
Registrert: 17.05.2006 17:08

Re: Formatering av tall

Innlegg thh022 » 16.02.2010 10:34

Takk for innspill! Jeg lagde en haste-klasse i full fart siden jeg ikke "tok" tipset med modulo og fikk dårlig tid:

Kode: Merk alt
package{
   
   public class Tallformatering{
      
      public static function tusendeler(tall:Number):String{
         
         var tempTall:String = tall.toString();
         
         if(tempTall.length <= 3){
            return(tempTall);
         }
         else if(tempTall.length == 4){                           // 1 000
            tempTall = tempTall.substr(0, 1)+" "+tempTall.substr(1, 3);
            return(tempTall);
         }
         else if(tempTall.length == 5){                           // 10 000
            tempTall = tempTall.substr(0, 2)+" "+tempTall.substr(2, 3);
            return(tempTall);
         }
         else if(tempTall.length == 6){                           // 100 000
            tempTall = tempTall.substr(0, 3)+" "+tempTall.substr(3, 3);
            return(tempTall);
         }
         else if(tempTall.length == 7){                           // 1 000 000
            tempTall = tempTall.substr(0, 1)+" "+tempTall.substr(1, 3)+" "+tempTall.substr(4, 3);
            return(tempTall);
         }
         
         return(tempTall);
      }
   }
}
thh022
Medlem
 
Innlegg: 565
Registrert: 20.03.2006 20:18
Bosted: Tromsø


Gå til Flash/Multimedia/ActionScripting

Hvem er i forumet

Brukere som leser i dette forumet: Ingen registrerte brukere og 3 gjester