Autor Zpráva
nethor
Profil
Zdravím , je v PHP funkce, která by uměla oddělovat i tisíciny?

Př: number_format("123456.789123", 6 ,","," ") ; vrací 123 456,789123 .
Pro lepší čitelnost bych chtěl výstup učesat na 123 456,789 123 . To ale asi number_format() neumí.

Jak na to? Regulár?
Enko
Profil
Podle toho, co si pamatuji z matematiky, tak oddělování čísel mezerou nebo jinak se takto nedělá, ale čísla za desetinným oddělovačem zůstavají v celku bez oddělevačů, tzn i bez mezer.
juriad
Profil
Enko:
Pokud zvolíme zápis čísel pomocí číslic, oddělujeme trojice řádů před a za desetinnou čárkou mezerami, tzn. že čísla, která mají více než tři místa vlevo nebo vpravo od desetinné čárky, členíme do skupin o třech číslicích: 6 378 km; 30 000 let; 2 500 000 obyvatel; 11 430,5 l; 34 145,50 Kč; 3,536 2 kg; 2,345 27 g apod.
prirucka.ujc.cas.cz/?id=791

nethor:
function czech_format($number, $decimals = 0) {
    $n = number_format($number, $decimals , ",", " ");
    if ($decimals > 0) {
        list($i, $d) = explode(',', $n);
        $n = "$i," . preg_replace('/\d{3}\B/', '\0 ', $d);
    }
    return $n;
}

for ($i = 0; $i <= 9; $i++) {
    echo czech_format(123456.789123, $i), "\n";
}
Keeehi
Profil
Věta Možné váhy jsou 25 456 g, 2,454 12 g, 1 354 849,489 156 781 2 g a 1 g. je možná česky správně, ovšem že by se mi snadno četla se říct nedá.
Oproti tomu Možné váhy jsou 25 456g, 2,45412g, 1 354 849,4891567812g a 1g. sice správně není, ale čte se mi mnohem lépe.
Joker
Profil
Keeehi:
Správně je obojí, ale každé znamená něco jiného.
1 g = jeden gram
1g = jednogramový

Někdy ten rozdíl může být podstatný, např.: „2 m trubky“ - „dva metry trubky“ vs. „2m trubky“ - „dvoumetrové trubky“.
nethor
Profil
juriad:
Díky za funkci.
................................
Co se týče sémantiky, když to jen trochu jde, snažím se text upravit do co nejpřehlednější podoby. (I když je to třeba v rozporu s kodifikovanou češtinou.)
Jazyk slouží člověku, ne naopak. (Totéž platí i o strojích.)

Možné váhy jsou:
• 25 456 g
• 2,454 12 g
• 1 354 849,489 156 781 2 g
• 1 g
blaaablaaa
Profil
nethor: 2,454 12 g a 1 354 849,489 156 781 2 g se ctou naprosto strasne, na prvni pohled nedokazu rozlisit, zda je to 2 g a neco nebo 2454 g ...
Taurus
Profil
Takto v řádku ve větě souhlasím, že to vypadá divně, ale třeba bude výstup v nějakých tabulkách. Pokud budou čísla zarovnaná na desetinnou čárku, bude to dobře čitelné. Pokud ne, bude to hrůza a připojuju se, že umění typografie je mj. i podat informace tak, aby se dobře četly. Tzn. lze odporovat jiným zdrojům pravidel, případně vybírat ta vhodnější. Pokud lze zajistit stejný počet desetinných míst u všech čísel pod sebou, tak bych varianty s mezerou i bez mezer nezatracoval, ale přikláním se spíš ke zrušením mezer. Mezery bych čekal, když už, u fakt dlouhých čísel.

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:

0