Gå til innhold

Hva er feil her?


Anbefalte innlegg

Hei, jeg prøver å lage en funksjon som konverterer et tall til tusenskille. det vil si:

1000 = 1.000 og 1000000000 = 1.000.000.000

 

Jeg kom opp med denne idên her:

(Feilen ligger øverst en plass, resten virker)

 

<?

 

function tusen_skille($tall)

{

   $lengde = strlen($tall);

   $skille = "3";

 

 

// Feilen ligger her en plass (Under)

 

 

   $i = "0";

   

  while (($skille*$i) <= $lengde)

   {      

     $punktum=$i;

     $i++;

   }

  

  

   $i = "0";

  

    while ($i <= "3") // BEMERK

   {

      if (($skille*$punktum+$i) == $lengde)

     {

       $not_tall = $i;

     }

     $i++;

   } 

  

 

// Feilen ligger her en plass ^^ (Over)

 

?>

 

Håper du skjønner min tanke vei, og hvet hva feilen er. På forhånd takk.

PS hvet at man kan bruke number_format, men man lærer ikke stort av å bruke alt som er ferdig.

 

EDIT : Tok vekk en del av koden, da den var lang.

Endret av robgar
Lenke til kommentar
Videoannonse
Annonse

Hva med en annen kode som funker? ;)

 

<?php
$str = '10000000';
$strlength = strlen($str);

while ($strlength>=3){
$strlength = $strlength-3;
$done = substr($str, $strlength);
$str = substr($str, 0, $strlength);
$rest .= '.'.$done;
}

echo $str.$rest;
?> 

Lenke til kommentar
Hva med en annen kode som funker? ;)

 

<?php
$str = '10000000';
$strlength = strlen($str);

while ($strlength>=3){
$strlength = $strlength-3;
$done = substr($str, $strlength);
$str = substr($str, 0, $strlength);
$rest .= '.'.$done;
}

echo $str.$rest;
?> 

Den skal desverre ikke fungere, eller?

Lenke til kommentar
PS hvet at man kan bruke number_format, men man lærer ikke stort av å bruke alt som er ferdig.

Torbjørn da!

 

Edit:

Her har du en løsning som burde fungere:

 

<?php
$str = 100200;
$a = -1;
for($i = strlen($str); $i >= 0; $i--){
 if(($a++)%3 == 0 and $a != 1) $tall = ".".$tall;
 $tall = substr($str, $i, 1).$tall;
}
echo $tall;
?> 

Endret av ????????
Lenke til kommentar
Den skal desverre ikke fungere, eller?

joda, testa den ut. :thumbup:

 

Nope, som sagt - den kan ikke fungere. Prøv å sett inn verdien 500000, da gir den .000.500.

Ja, den virker ikke der nei.

 

Men kan du forklare meg hva dette her betyr :

 

 

if(($a++)%3 == 0 and $a != 1)

 

Fatter fortsatt ikke hvordan dette deler tallet inn i tusener.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...