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í
×
    včera 21:11 | Nová verze

    Byl vydán Debian 13 s kódovým názvem Trixie. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    včera 15:55 | Zajímavý software

    WLED je open-source firmware pro ESP8266/ESP32, který umožňuje Wi-Fi ovládání adresovatelných LED pásků se stovkami efektů, synchronizací, audioreaktivním módem a Home-Assistant integrací. Je založen na Arduino frameworku.

    Indiánský lotr | Komentářů: 0
    8.8. 15:33 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.8.

    Ladislav Hagara | Komentářů: 6
    8.8. 14:22 | IT novinky

    Herní studio Hangar 13 vydalo novou Mafii. Mafia: Domovina je zasazena do krutého sicilského podsvětí na začátku 20. století. Na ProtonDB je zatím bez záznamu.

    Ladislav Hagara | Komentářů: 1
    8.8. 13:22 | IT novinky

    Operátor O2 má opět problémy. Jako omluvu za pondělní zhoršenou dostupnost služeb dal všem zákazníkům poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství.

    Ladislav Hagara | Komentářů: 8
    8.8. 05:55 | IT novinky

    Společnost OpenAI představila GPT-5 (YouTube).

    Ladislav Hagara | Komentářů: 2
    8.8. 05:00 | Nová verze

    Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    7.8. 17:33 | IT novinky

    Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.

    Ladislav Hagara | Komentářů: 10
    7.8. 16:55 | Nová verze

    Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    7.8. 16:44 | Nová verze

    Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (46%)
     (20%)
     (4%)
     (5%)
     (3%)
     (1%)
     (1%)
     (18%)
    Celkem 319 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: PHP - problem pri generovani cisel

    3.2.2023 14:10 tom
    PHP - problem pri generovani cisel
    Přečteno: 684×
    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.