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

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.05. Přehled novinek i s náhledy a videi v oficiálním oznámení. Do balíku se dostalo 5 nových aplikací: Audex, Accessibility Inspector, Francis, Kalm a Skladnik.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | Nová verze

    Byla vydána (𝕏) nová verze 18.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Pozvánky

    V neděli 26. května lze navštívit Maker Faire Rychnov nad Kněžnou, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.20.0, tj. první z nové řady 3.20, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu 64bitové architektury RISC-V.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | IT novinky

    Společnost Jolla na akci s názvem Jolla Love Day 2 - The Jolla comeback představila telefon se Sailfish OS 5.0 Jolla Community Phone (ve spolupráci se společností Reeder) a počítač Jolla Mind2 Community Edition AI Computer.

    Ladislav Hagara | Komentářů: 2
    včera 12:33 | Nová verze

    LibreOffice 24.8 bude vydán jako finální v srpnu 2024, přičemž LibreOffice 24.8 Alpha1 je první předběžnou verzí od začátku vývoje verze 24.8 v prosinci 2023. Od té doby bylo do úložiště kódu odesláno 4448 commitů a více než 667 chyb bylo v Bugzille nastaveno jako opravené. Nové funkce obsažené v této verzi LibreOffice najdete v poznámkách k vydání.

    ZCR | Komentářů: 0
    21.5. 23:33 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 141 (pdf) a HackSpace 78 (pdf).

    Ladislav Hagara | Komentářů: 0
    21.5. 21:22 | Nová verze

    Byla vydána verze 2.0.0 programovacího jazyka Kotlin (Wikipedie, GitHub). Oficiálně bude představena ve čtvrtek na konferenci KotlinConf 2024 v Kodani. Livestream bude možné sledovat na YouTube.

    Ladislav Hagara | Komentářů: 2
    21.5. 12:55 | Nová verze

    Byla vydána nová major verze 27.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    21.5. 01:11 | Nová verze

    Byla vydána nová verze 1.8.0 svobodného multiplatformního softwaru pro konverzi video formátů HandBrake (Wikipedie). Přehled novinek v poznámkách k vydání na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (82%)
     (4%)
     (7%)
     (7%)
    Celkem 505 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Dotaz: PHP - problem pri generovani cisel

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