Autor Zpráva
P3T3R
Profil
Dobrý deň,

mám takýto problém, mám číslo, ktoré sa mení napr. 123789,01

Potrebujem aby číslo 123 789,01 a vypísalo len prvé 3 znaky, teda 123

Keďže sa číslo mení, takže to môže byť 12 345,67 a potrebujem aby vypísalo len 12.

A keďže ešte môže byť 1 234 567,89 tak potrebujem aby vypísalo 1

Ďakujem

Peter
ahoj
Profil *
P3T3R:
Potrebujem aby číslo vypísalo ako 123 789,01 a vypísalo len prvé 3 znaky, teda 123

Dává ti ta věta smysl?
P3T3R
Profil
ahoj:
Dává ti ta věta smysl?

Písal som to v rýchlosti a myslím, že si to dobre pochopil, len sa netreba robiť niekedy veľmi zaujímavým ;)
ahoj
Profil *
P3T3R:
myslím, že si to dobre pochopil

Snažím se, ale nejsem si jist. Vypadá to, že chceš z řetězce získat tu část, která je před první mezerou. Co když tam mezera není?
P3T3R
Profil
ahoj:
Co když tam mezera není?

No ja potrebujem len rozdelenie čísel a aby vypísalo tie čísla pred medzerou.

Medzery tam nemusia byť, ide mi len o vypísanie toho čísla.
ahoj
Profil *
ok, zkrátíme to. Jen jsem se zamyslel nad tím, jak postupně klesá schopnost zformulocvat otázku.

$vstup = "21 000";
list ($vystup, $zbytek) =  explode (" ", $vstup);
echo $vystup;
P3T3R
Profil
ahoj:
No toto viem aj ja, že ak by bolo číslo 21 000 alebo 123 000 000 tak mám použiť explode, ale problém je v tom, že číslo je spolu 21000 alebo 123000000, teda nemá žiadne medzery.
Str4wberry
Profil
V podstatě je cílem jen zjistit počet tisíců/milionů, ne? K tomu ti stačí číslo vydělit a zaokrouhlit.
P3T3R
Profil
Str4wberry:
No v podstate áno a potom použiť ten script vyššie cez explode
Keeehi
Profil
$cislo = 1234567890;

echo "jednotky - stovky" . (floor($cislo) % 1000) . "<br>\n";
echo "tisíce - statisíce" . (floor($cislo/1000) % 1000) . "<br>\n";
echo "miliony - stamiliony" . (floor($cislo/1000000) % 1000) . "<br>\n";
echo "miliardy - stamiliardy" . (floor($cislo/1000000000) % 1000) . "<br>\n";
echo "zbytek co je ještě větší" . (floor($cislo/1000000000000) % 1000) . "<br>\n";
ahoj
Profil *
<?php
$vstup = 314159;
$len = strlen(floor($vstup));
$len = $len % 3;
if ($len==0) {$len = 3;}
echo substr ($vstup, 0, $len);
?>
Keeehi
Profil
ahoj:
Ale fuj. Proč s číslem pracuješ jako s řetězcem, když se to dá vyřešit jen čistě pomocí matematiky?
ahoj
Profil *
Keeehi:
Proč s číslem pracuješ jako s řetězcem

:-) čekal jsem to, naběhl jsem si. Lze to ošetřit pomocí strval(). Další nevýhody:
- na pohled je to méně čitelné
- asi to bude trochu náročnější na čas

Oproti tvému vidím výhodu, že to nemá omezení velikosti.
Přiznávám, chtěl jsem se jen odreagovat a ukázat trochu jinou cestu.
Keeehi
Profil
Možností je hodně. Další je třeba tato:
explode (" ", number_format(floor($cislo), 0, " ", " "));

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: