abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:00 | Nová verze

    Byl vydán AlmaLinux OS 10.1 s kódovým názvem Heliotrope Lion. S podporou Btrfs. Podrobnosti v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Komunita

    Placená služba prohledávání zprostředkovatelů dat a automatického odstraňování uniklých osobních údajů Mozilla Monitor Plus bude 17. prosince ukončena. Bezplatná monitorovací služba Mozilla Monitor bude i nadále poskytovat okamžitá upozornění a podrobné pokyny k omezení rizik úniku dat. Služba Mozilla Monitor Plus byla představena v únoru loňského roku.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | Nová verze

    Waydroid (Wikipedie, GitHub) byl vydán v nové verzi 1.6.0. Waydroid umožňuje spouštět aplikace pro Android na běžných linuxových distribucích. Běhové prostředí vychází z LineageOS.

    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Nová verze

    Příspěvek na blogu Raspberry Pi představuje novou kompletně přepracovanou verzi 2.0 aplikace Raspberry Pi Imager (YouTube) pro stažení, nakonfigurování a zapsání obrazu operačního systému pro Raspberry Pi na SD kartu. Z novinek lze vypíchnout volitelnou konfiguraci Raspberry Pi Connect.

    Ladislav Hagara | Komentářů: 2
    včera 11:22 | Nová verze

    Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 8.00. Přináší podporu nejnovějších procesorů Intel a AMD nebo také tmavý režim.

    Ladislav Hagara | Komentářů: 0
    včera 10:55 | Nová verze

    Programovací jazyk Racket (Wikipedie), tj. jazyk z rodiny jazyků Lisp a potomek jazyka Scheme, byl vydán v nové major verzi 9.0. Hlavní novinku jsou paralelní vlákna (Parallel Threads).

    Ladislav Hagara | Komentářů: 0
    včera 10:11 | Komunita

    Před šesti týdny bylo oznámeno, že Qualcomm kupuje Arduino. Minulý týden byly na stránkách Arduina aktualizovány podmínky používání a zásady ochrany osobních údajů. Objevily se obavy, že by otevřená povaha Arduina mohla být ohrožena. Arduino ubezpečuje, že se nic nemění a například omezení reverzního inženýrství v podmínkách používání se týká pouze SaaS cloudové aplikace.

    Ladislav Hagara | Komentářů: 0
    23.11. 13:33 | Bezpečnostní upozornění

    Knihovna libpng, tj. oficiální referenční knihovna grafického formátu PNG (Portable Network Graphics), byla vydána ve verzi 1.6.51. Opraveny jsou 4 bezpečnostní chyby obsaženy ve verzích 1.6.0 (vydána 14. února 2013) až 1.6.50. Nejvážnější z chyb CVE-2025-65018 může vést ke spuštění libovolného kódu.

    Ladislav Hagara | Komentářů: 10
    23.11. 12:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 159 (pdf).

    Ladislav Hagara | Komentářů: 0
    21.11. 22:33 | Zajímavý software

    Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (19%)
     (18%)
     (22%)
     (15%)
     (23%)
     (16%)
     (17%)
    Celkem 396 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    Dotaz: PHP - problem pri generovani cisel

    3.2.2023 14:10 tom
    PHP - problem pri generovani cisel
    Přečteno: 716×
    Zdravim,

    potrebuji vygenerovat cisla od -10 do 10 s krokem 0,1

    Napsal jsem si nasledujici jednoduchy kod:
    for ($x = -10; $x < 10; $x = $x + 0.1) {
        echo "$x\n";
    }
    
    A podivejte co se mi vygeneruje za silenost:
    -1.5
    -1.4
    -1.3
    -1.2
    -1.1
    -1
    -0.90000000000002
    -0.80000000000002
    -0.70000000000002
    -0.60000000000002
    -0.50000000000002
    -0.40000000000002
    -0.30000000000002
    -0.20000000000002
    -0.10000000000002
    -1.8790524691781E-14
    0.099999999999981
    0.19999999999998
    0.29999999999998
    0.39999999999998
    0.49999999999998
    0.59999999999998
    0.69999999999998
    0.79999999999998
    0.89999999999998
    0.99999999999998
    1.1
    1.2
    1.3
    1.4
    1.5
    
    Netusi prosim nekdo co delam spatne? Dekuji.

    Řešení dotazu:


    Odpovědi

    Jendа avatar 3.2.2023 14:29 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: PHP - problem pri generovani cisel
    Takhle floaty fungují a nic s tím dělat nejde, maximálně můžeš použít "decimal float" pokud ti o to hodně jde a PHP to umí (ale s tím zase třeba nebudou umět pracovat různé knihovny). Jedno z "řešení" je že vypisuješ čísla jenom na nějaký rozumný počet desetinných míst, kolik je skutečně potřeba pro tvoji aplikaci (ve funkcích co umí printf-like formátování je to třeba "%.3f").

    0.1 myslím vůbec nejde ve standardních binárních floatech reprezentovat přesně, takže když s tím budeš dál pracovat, budou se ti „nepřesnosti“ ještě víc kumulovat.
    Jendа avatar 3.2.2023 14:34 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: PHP - problem pri generovani cisel
    Jinak to na co tak trochu narážíš je "numerická stabilita" a zde by například numericky stabilnější řešení bylo mít proměnnou jako celé číslo 10x větší a vždy to vydělit 10, protože takhle se ti chyby kumulují.

    Numerické knihovny jako například numpy na tuhle úlohu mají speciální funkce (numpy.linspace, numpy.arange) které jsem doufal že to ošetřují, ale teď jsem si zkusil že np.arange(-10,10,0.1) místo nuly taky dává -3.55271368e-14
    Řešení 1× (DaBler)
    3.2.2023 14:38 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP - problem pri generovani cisel
    Za to môže: Pohyblivá řádová čárka.

    Takže si to generovanie musíš inak napísať. Napr.:
    <?php
    
    for($i=-100; $i<=100; $i++)
    	echo ($i/10)."\n";
    
    debian.plus@protonmail.com
    3.2.2023 14:43 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP - problem pri generovani cisel
    Ďalšia pikolka je zaokrúhľovania.

    Ak chceš presnosť (doslova), tak sa na výpočty používajú "kalkulačky s ľubovoľnou presnosťou" (napr. program bc).
    debian.plus@protonmail.com
    4.2.2023 16:25 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP - problem pri generovani cisel
    Alebo C kniznicu gmp.
    debian.plus@protonmail.com

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.