Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Calc - zaokrouhlování  (Přečteno 2518 krát)

vasicekabc

Calc - zaokrouhlování
« kdy: 31 Března 2011, 08:27:47 »
Normálně kancelářské programy nepotřebuji, ale nyní jsem si potřeboval vytvořit jednoduchý přehled zásob a tržeb (zrcadlo). Tržby za jednotlivé položky potřebuji zaokrouhlovat na celé koruny dolů (tzn. i 8,99 = 8,00), pro což jsem použil funkci INT. Vše mi funguje skvěle, jen pokud mi dojde k situaci, že se násobí 0,15 x 600, výsledek je vždy 89. Jak je to možné a co s tím?

Výraz mám nastaven jako =INT(G12*H12), přičemž v buňkách G12 ani H12 žádné zaokrouhlování neproběhlo.

Evžen Šubrt

  • Závislák
  • ***
  • Příspěvků: 2218
    • EuGenio's Lair
Re: Calc - zaokrouhlování
« Odpověď #1 kdy: 31 Března 2011, 10:26:07 »
Nemám calc po ruce, abych tuhle chybu reprodukoval. Jinak to vypadá na klasický problém s omezenou přesností reálných čísel v počítači (ač 0,15 vypadá v desítkové soustavě celkem dobře, ve dvojkové to může být číslo s extrémně dlouhým desetinným rozvojem či dokonce číslo periodické). Potom výsledkem výpočtu 600*0,15  může být třeba číslo 89,99999999998, z čehož INT samozřejmě udělá 89.

Co s tím? No, třeba pokud je těch 0,15 představuje 15%, zadat to přímo jako 15%, nebo jako 15 a vzorec upravit na INT(600*15/100).
Athlon X2 6000+, MB ASUS M2R32-MVP, 6GB RAM, ATI Radeon HD7850 1GB, 1GB SSHD + 250GB HDD, Ubuntu 13.10 Saucy Salamander 64bit

Krysař

  • Stálý člen
  • **
  • Příspěvků: 1253
Re: Calc - zaokrouhlování
« Odpověď #2 kdy: 31 Března 2011, 15:39:00 »
A co je v tech bunkach G12 a H12? Neni to odkaz na neco, co je zaokrouhlovane?
Kdyz napises rucne 0.15 a 600 a nechas spocitat, tak vyjde co? (viz priloha)

[attachment deleted by admin]
„Nepropadejte naději, jste z nejhoršího vevnitř.“

vasicekabc

Re: Calc - zaokrouhlování
« Odpověď #3 kdy: 31 Března 2011, 20:02:41 »
Pokud to zadám přímo čísly, tak vyjde 90 jak má. Žádné zaokrouhlení ale v dílčích buňkách není. 600 je zadáno napevno a 0,15 je rozdíl dvou buňek bez zaokrouhlení (1,00 - 0,85), tyto dvě hodnoty jsou opět vstupy zadané ručně.

Stue

  • Aktivní člen
  • *
  • Příspěvků: 188
Re: Calc - zaokrouhlování
« Odpověď #4 kdy: 01 Dubna 2011, 08:10:47 »
"Chyba" je podle mě v tom, že v sešitu je u některé z buněk použito "zaokrouhlení" pomocí tlačítka na liště <přidat nebo odstranit desetinné místo>. Takto upravená buňka se pak může jevit v pracovní ploše jako celé číslo, ale ve skutečnosti má za desetinnou čárkou nějaké drobné.
Hodnotu každé buňky je třeba zkontrolovat v Panelu vzorců.

Navíc můžeš zkusit jednoduché ověření. Otevři NOVÝ sešit a bez použití jakýchkoliv formátovacích úprav zadej ona čísla 1; 0.85; jejich rozdíl; 600; součin INT(rozdíl * 600). Výsledek bude zcela jistě 90.
« Poslední změna: 01 Dubna 2011, 08:13:34 od Stue »
Ubuntu 12.04
(Ubuntu 10.04)

vasicekabc

Re: Calc - zaokrouhlování
« Odpověď #5 kdy: 30 Dubna 2011, 08:14:00 »
Po nějakém čase se vracím k problému, zkouším co navrhuje Stue, zkouším to v openoffice i v libreoffice na novém sešitě bez formátování a pořád dostávám 89.

viz.http://www.uloz.to/8825069/zrcadlo-ods

 

Provoz zaštiťuje spolek OpenAlt.