/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Vis tre tal før komma
Fra : Martin Korsgaard


Dato : 02-07-03 10:40

Hej Gruppe!

Hvordan kan jeg gøre sådan at php viser tre tal før kommaet.
F.eks vis jeg har tallet 2 så skal php skrive 002.
Jeg har prøvet at ligge 000 til tallet med uden held!





 
 
Peter Sepstrup (02-07-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 02-07-03 10:34

Martin Korsgaard skrev:

> Hej Gruppe!
>
> Hvordan kan jeg gøre sådan at php viser tre tal før kommaet.
> F.eks vis jeg har tallet 2 så skal php skrive 002.
> Jeg har prøvet at ligge 000 til tallet med uden held!

En lidt dum måde at gøre det på kunne være noget med at tælle antal tegn i
variaben, med f.eks. strlen()
Altså noget i den her stil:

$tal = 2;
$antal_tegn = strlen($tal);
if($antal_tegn == 1) {
$tal = "00".$tal;
}

Men ikke nogen optimal metode hvis du forventer at få tal på den anden side
af kommaet også... men ellers virker det da... du skal selvf. lige have
lavet en til kun med 1 nul foran også.
--

Mvh. Peter.
____________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Johan Holst Nielsen (02-07-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 02-07-03 10:37



Peter Sepstrup wrote:
> Martin Korsgaard skrev:
>
>
>>Hej Gruppe!
>>
>>Hvordan kan jeg gøre sådan at php viser tre tal før kommaet.
>>F.eks vis jeg har tallet 2 så skal php skrive 002.
>>Jeg har prøvet at ligge 000 til tallet med uden held!
>
>
> En lidt dum måde at gøre det på kunne være noget med at tælle antal tegn i
> variaben, med f.eks. strlen()
> Altså noget i den her stil:
>
> $tal = 2;
> $antal_tegn = strlen($tal);
> if($antal_tegn == 1) {
> $tal = "00".$tal;
> }
>
> Men ikke nogen optimal metode hvis du forventer at få tal på den anden side
> af kommaet også... men ellers virker det da... du skal selvf. lige have
> lavet en til kun med 1 nul foran også.

Ehm... aldrig lav funktioner der findes i forvejen...

Hvis der er tale om et integer...

<?php
$tal = sprintf("%03d", $tal); // 3 vil give 003, 23 vil give 023
?>

Er der tale om float...
<?php
$tal = sprintf("%03.3f", $tal); //3.3 vil give 003.300
?>

mvh
Johan


Peter Sepstrup (02-07-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 02-07-03 11:19

Johan Holst Nielsen skrev:


>> En lidt dum måde at gøre det på kunne være noget med at tælle antal tegn
>> i variaben, med f.eks. strlen()
>> Altså noget i den her stil:
>>
>> $tal = 2;
>> $antal_tegn = strlen($tal);
>> if($antal_tegn == 1) {
>> $tal = "00".$tal;
>> }
>>
>> Men ikke nogen optimal metode hvis du forventer at få tal på den anden
>> side af kommaet også... men ellers virker det da... du skal selvf. lige
>> have lavet en til kun med 1 nul foran også.
>
> Ehm... aldrig lav funktioner der findes i forvejen...
>
> Hvis der er tale om et integer...
>
> <?php
> $tal = sprintf("%03d", $tal); // 3 vil give 003, 23 vil give 023
> ?>
>
> Er der tale om float...
> <?php
> $tal = sprintf("%03.3f", $tal); //3.3 vil give 003.300
> ?>

Jeg skrev jo os at det var en dum løsning :D

--

Mvh. Peter.
____________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Kim Schulz (02-07-2003)
Kommentar
Fra : Kim Schulz


Dato : 02-07-03 10:38

On Wed, 02 Jul 2003 11:33:41 +0200
Peter Sepstrup <peter@_REMOVE_sepstrupnet.dk> wrote:
> Martin Korsgaard skrev:
>
> > Hej Gruppe!
> >
> > Hvordan kan jeg gøre sådan at php viser tre tal før kommaet.
> > F.eks vis jeg har tallet 2 så skal php skrive 002.
> > Jeg har prøvet at ligge 000 til tallet med uden held!
>
> En lidt dum måde at gøre det på kunne være noget med at tælle antal
> tegn i variaben, med f.eks. strlen()
> Altså noget i den her stil:
>
> $tal = 2;
> $antal_tegn = strlen($tal);
> if($antal_tegn == 1) {
> $tal = "00".$tal;
> }
>
> Men ikke nogen optimal metode hvis du forventer at få tal på den anden
> side af kommaet også... men ellers virker det da... du skal selvf.
> lige have lavet en til kun med 1 nul foran også.


for ($x=0; $x<3-strlen($tal);$x++){
   $str .= "0";
}
$str .=$tal;

så retter man bare 3tallet hvis der skal være et andet antal cifre i
tallet

tror ikke php har en funktion til at gøre det med automatisk

--
Navn : Kim Schulz | The average Ph.D thesis is nothing but the
Email : kim @ schulz.dk | transference of bones from one graveyard to
WWW : www.schulz.dk | another. -- J. Frank Dobie, "A Texan in

Peter Brodersen (02-07-2003)
Kommentar
Fra : Peter Brodersen


Dato : 02-07-03 19:48

On Wed, 2 Jul 2003 11:37:41 +0200, Kim Schulz <kim@schulz.dk> wrote:

>for ($x=0; $x<3-strlen($tal);$x++){
>   $str .= "0";
>}
>$str .=$tal;

Hvis man endelig vil lave det på den måde, så kan det altid kortes ned
til:

while (strlen($tal) < 3) $tal = "0".$tal;

--
- Peter Brodersen

Kim Schulz (02-07-2003)
Kommentar
Fra : Kim Schulz


Dato : 02-07-03 10:42

[snip]
>
> tror ikke php har en funktion til at gøre det med automatisk
>

hov så lige at formatering i php sprintf printf osv har zeropadding

$tal= sprintf("%03d",$tal);

--
Navn : Kim Schulz | It's not easy, being green. -- Kermit the
Email : kim @ schulz.dk | Frog
WWW : www.schulz.dk |

Kim Schulz (02-07-2003)
Kommentar
Fra : Kim Schulz


Dato : 02-07-03 10:53

On Wed, 02 Jul 2003 11:46:23 +0200
Johan Holst Nielsen <johan@weknowthewayout.com> wrote:
> > hov så lige at formatering i php sprintf printf osv har zeropadding
> >
> > $tal= sprintf("%03d",$tal);
> >
>
> Som jeg skrev tidligere :D
> Troede jeg havde patent på den kode :DD

nixenbixen! det er faktisk mig der ejer den kode! :-þ 


--
Navn : Kim Schulz | A is for Apple. -- Hester Pryne
Email : kim @ schulz.dk |
WWW : www.schulz.dk |

No1 (02-07-2003)
Kommentar
Fra : No1


Dato : 02-07-03 14:49

> Hvordan kan jeg gøre sådan at php viser tre tal før kommaet.
> F.eks vis jeg har tallet 2 så skal php skrive 002.
> Jeg har prøvet at ligge 000 til tallet med uden held!

Se her:
http://dk.php.net/manual/en/function.number-format.php

I kommentar nr. 3 er der en funktion der hedder leading zero.



Johan Holst Nielsen (02-07-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 02-07-03 14:50



No1 wrote:
>>Hvordan kan jeg gøre sådan at php viser tre tal før kommaet.
>>F.eks vis jeg har tallet 2 så skal php skrive 002.
>>Jeg har prøvet at ligge 000 til tallet med uden held!
>
>
> Se her:
> http://dk.php.net/manual/en/function.number-format.php
>
> I kommentar nr. 3 er der en funktion der hedder leading zero.

Jeg vil påstå at sprintf/printf funktionen egner sig i langt det fleste
tilfælde mere til det end den funktion som han bruger... han kalder
flere funktioner... så sprintf/printf vil stadig foretrækkes (se mine
indlæg i tråden).

mvh
Johan


Søg
Reklame
Statistik
Spørgsmål : 177519
Tips : 31968
Nyheder : 719565
Indlæg : 6408647
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste