Založen: Sep 10,
2004 Příspěvky: 19531 Bydliště: Jičín, Český ráj
Zaslal: so říjen 02 2010, 17:31 Předmět:
A proč ti to nastavení vadí?
Použij pomocný sloupec po výpočet argumentu a zaokrouhlování třeba na 6 míst. On totiž ARC... neumí ze vzorce počítat, pokud je úhel těsně kolem 0 a atgumentem funkce je vzorec.
Já bych řekl, že tě to zase nijak časově nezatíží ve srovnání s tím, kolik ti zabere třeba jen sestavování vzorců, neřkuli krmení tabulky daty.
Naposledy upravil Hill dne so říjen 02 2010, 17:46, celkově upraveno 2 krát.
Založen: Sep 10,
2004 Příspěvky: 19531 Bydliště: Jičín, Český ráj
Zaslal: so říjen 02 2010, 17:54 Předmět:
S pomocnou buňkou A5, z níž si bere konečný vzorec argument pro ARCCOS, to máš tady na obrázku.
Nastavil jsem zaokrouhlení na 12 platných míst, ale můžeš i víc.
Založen: Dec 20, 2006 Příspěvky: 2838 Bydliště: Poličské krystalinikum
Zaslal: so říjen 02 2010, 19:58 Předmět:
Diky Hille, sice to není ideálně jednoduché řešení, ale funguje to. Mě by tohle ani nenapadlo, protože pomocné buňky jsem si neoblíbil a pokud to není nutné z formálního důvodu (např. pokud je pomocná hodnota i výstupem), tak vše dám do jednoho dlouhého vzorce.
Času to moc nezabere, ale každý čas navíc se hodí na něco jiného
Je taky docela zajímavý, že tu chybu to dělá jen při určitém čísle v A1 ... mno prostě mrkvo$oft
Založen: Oct 11, 2008 Příspěvky: 6068 Bydliště: ZZ9 Plural Z Alpha
Zaslal: so říjen 02 2010, 21:26 Předmět:
Problém není ve vložené funkci, ale v tom, že Excel počítá na víc míst než ukazuje a výsledek výpočtu který se jeví jako 0,3 může být v Excelí interpretaci skutečnosti třeba 0,3000000000000004 nebo 0,2999999999999995 a člověk nemá šanci to zjistit. Proto mu zřejmě vyšel argument arccos větší než 1 a to se mu nelíbí. Řešením je vložit tam na argument arccos zaokrouhlovací funkci.
Excel dělá i horší věci. Zkuste si pomocí funkce MOD zkontrolovat, jestli je vaše rodné číslo beze zbytku dělitelné 11 (což by, pro narozené po 1.1.1954, mělo být). Můj Excel 2002 ani 2003 SP2 to neumí. Největší celé číslo, pro které to umí, je 1476395007.
Edit: nebo lépe, funkce MOD(Číslo, Dělitel) funguje jen pro
1) je-li dělitel kladný a (-Dělitel*2^27 +1)<Číslo<(Dělitel*2^27)
2) je-li dělitel záporný a (Dělitel*2^27)<Číslo<(-Dělitel*2^27 -1)
To znamená, že počítá celočíselný podíl jen na 27 bitů, zatímco normálně počítá na 50+ bitů (tuším že 54, ale zobrazuje zaokrouhlení na 50).
P.S. 2^27 = 134 217 728
Naposledy upravil tomasjedno dne so říjen 02 2010, 23:22, celkově upraveno 2 krát.
Založen: Dec 20, 2006 Příspěvky: 2838 Bydliště: Poličské krystalinikum
Zaslal: so říjen 02 2010, 22:00 Předmět:
tomasjedno: to co píšeš je pravda, ale to, že počítá na konečný počet míst a pak díky tomu místo 1 je 1.00...x je problém EXCELu a mělo by to být nějak ošetřené, protože to znemožňuje normální práci (ale to nikomu asi ještě nikdy nevadilo).
Založen: Sep 10,
2004 Příspěvky: 19531 Bydliště: Jičín, Český ráj
Zaslal: so říjen 02 2010, 22:19 Předmět:
Už jsem na podobné potíže taky někdy narazil, ale ošetřuji si je tím, že si udělám pomocné buňky, ať se v tom později, až zapomenu, co jsem to vlastně tvořil, snadněji zorientuju bez složitého dekódování dlouhých vzorců. Aspoň mám jasno, co který sloupec vůbec dělá, a ty pomocné můžu skrýt.
Obávám se, že Excel používá algoritmus ukládání čísel daný operačním systémem, takže ta chyba nevzniká v Excelu.
Už u osmibitů způsobovalo ukládání čísel s plovoucí desetinnou čárkou problémy (například u Spectra se vyměňovaly EPROMky s Basicem kvůli takovým chybám, jako PRINT -1 způsobil, že na obrazovce se objevilo číslo 65535, protože všechna čísla se ukládala jako mantissa a za ní exponent). Při převodu na "lidskou" interpretaci zkrátka k této chybě došlo.
Kdyby tehdy bylo možné definovat předem přesnost čísla, problému by si nejspíš dlouho nikdo nevšiml.
Založen: Sep 19, 2007 Příspěvky: 3697 Bydliště: Praha
Zaslal: ne říjen 03 2010, 22:23 Předmět:
Tvar uložených čísel v pohyblivé řádové čárce si řídí každý program sám, a kompilátor si je ukládá v závislosti na tom, jakou matematickou knihovnu používá. Přesné výpočty v dekadické soustavě s pohyblivou řádovou čárkou jsou v principu možné při uložení čísel v BCD a k tomu existují různé knihovny jako třeba:
* Borland's C++ BCD class
* Zortech's C++ BCD class
* Zortech's C++ money class
Samozřejmě jsou výpočty v BCD daleko pomalejší, a proto, pokud nejde třeba o peníze nebo není jiný důvod , se to běžně nepoužívá.
Založen: May 13, 2009 Příspěvky: 4983 Bydliště: BA-Petržalka :(
Zaslal: pá říjen 08 2010, 23:00 Předmět:
Takže malá skúška v Exceli:
do C10 napíš:
=CHOOSE(C9+1;"nula";"jeden";"dva";"tri";"štyri";"pät";"šesť";"sedem";"osem";"deväť")
Teraz do C9 skús písať čísla od 0 do 9. Funguje to, že? Tak teraz do C9 napíš:
=INT((C8*10-INT(C8*10))*10)
Teraz skús písať do C8 čísla s dvoma desatinnými miestami. Malo by to brať v úvahu druhé desatinné miesto a vypísať ho slovom. Lenže pri niektorých číslach to ukazuje zle! Napríklad pri 1234,56. Skús prísť na to, kde je chyba...
Alebo: do A1 napíš 1234,56 a do A2 napíš 1234. Do A3 napíš =A1-A2. Vidíš výsledok 0,56. Tak skús klikať na "Pridať desatinné miesto" (aspoň 15 krát), to sa budeš diviť. Samozrejme si nastav širší stĺpec, aby sa tam tie desatiny zmestili.
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2
Strana 2 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.