Přidat aktualitu mezi oblíbenéZasílat nové komentáře e-mailem Hrubá chyba při počítání v Excelu 2007

V Excelu 2007 byla objevena významná chyba výpočtů. Nejde o žádné chybné zaokrouhlování v desetinných místech, snadno dostanete Excel do úzkých, kdy se sekne o desítky tisíc. Zkuste si to sami. Zdá se, že má Excel velké problémy s čísly, které se velmi blíží číslu 65 535.http://www.zive.cz/Bleskovky/Hruba-chyba-pri-pocita ni-v-Excelu-2007/sr-1-sc-4-a-138300/default.aspx

Předmět Autor Datum
zkousel jsme, funguje ]:) skutecne tam maji chybu
JR_Ewing 25.09.2007 11:20
JR_Ewing
Bože! To je banda pi*usů....3-[ Programátoři jak cyp.
MaSo 25.09.2007 13:11
MaSo
Ty v*le.Taková chyba!!!Asi jsem neudělal dobře koupí Office 2007.Fatal error!!!3-[
vlk56 25.09.2007 13:41
vlk56
Myslím, že to velmi rychle opraví, nejpozději v pravidelných měsíčních updatech kolem 10. :-?:-?:-?…
L-Core 25.09.2007 14:06
L-Core
No jo v Microsoftu jsou vychytralí.Vím o tom dost protože tam můj vlastník(vzdálený příbuzný)pracuje…
vlk56 25.09.2007 14:14
vlk56
No jo v Microsoftu jsou vychytralí.Vím o tom dost protože tam můj vlastník(vzdálený příbuzný)pracuje…
Paullus 25.09.2007 18:44
Paullus
:-D:-D
Jan Fiala 25.09.2007 19:35
Jan Fiala
To radši říkáme, že můj tatínek (strejda, brácha, bratránek....) tancuje nahej v gayklubu :-D
mia 25.09.2007 20:22
mia
A zkuste si v Excelu (i ve starších verzích než 2007) zadat do nějaké buňky číslo 40000,223 A nebo…
Máslo 25.09.2007 20:27
Máslo
A Microsoft o tom ví, nicméně přiznává chybu jen u čísel končících na .848 :)) http://support.micro…
Máslo 25.09.2007 20:31
Máslo
Je odstranitelná. ;-)8-)
host 25.09.2007 20:37
host
Nápad na workaround. :beer: Až uživatel skončí práci na tabulce v Excelu, uloží a otevře ji v OpenO…
Máslo 25.09.2007 20:43
Máslo
ok. nechcem sem tahat ziaden win vs. unix flamewar, ale: ...Postupem času první krok s Excelem odpa…
2laak 25.09.2007 20:49
2laak
Já si nic o přechodu na Linux nebo Oo nemyslím. Možná jsem měl u posledního odstavce použít tři smaj…
Máslo 25.09.2007 20:55
Máslo
Oukej :))
2laak 25.09.2007 20:57
2laak
Oo=záchod?:-D
vlk56 25.09.2007 21:58
vlk56
Hmmm. Kde je Vladimir? :-x
2laak 25.09.2007 20:31
2laak
Sedí v koutku se staženýma ušima a přemýšlí, jak obhájit M$... :))(sorry Vláďo)
host 25.09.2007 20:38
host
ale nie. na toto URCITE existuje logicke vysvetlenie. nie nadarmo veria miliony uzivatelov MS produk…
2laak 25.09.2007 20:39
2laak
Ať už Vladimir vymyslí cokoliv, tohle je ostuda jako prase. Program s takovou chybou, bych se styděl…
MaSo 25.09.2007 20:49
MaSo
Aj toto prehrmi a Excel bude pouzivat dalej tak isto vela pouzivatelov Windowsov, ako doteraz. Darmo…
2laak 25.09.2007 20:52
2laak
Kazdy mame navic moznost volby - kdo kvuli teto chybe nemuze usnout a chce navic usetrit, muze preji…
Moas 26.09.2007 06:54
Moas
Excel je tabulkový procesor, ne domácí úkol. Mě osobně tyto jevy neudivují.
Flash_Gordon 25.09.2007 23:07
Flash_Gordon
Excel je tabulkový procesor, ne domácí úkol. A co jako? Tenhle arugment mi nedává smysl. To, že v M…
MaSo 25.09.2007 23:12
MaSo
Třeba se na to jednou budeš dívat jinak. Kdosi tady měl v podpisu heslo, které znělo nějak takhle: P…
Flash_Gordon 25.09.2007 23:25
Flash_Gordon
A oni si to při vývoji vyzkoušejí třeba na náhodném vzorku 10 000 vstupů a ty zrovna sedí (jsou OK).…
MaSo 25.09.2007 23:31
MaSo
Hmmm. Jenomže problém je v tom, že počítač dělá pouze to co mu řekneš. Počítač neví jestli to co děl…
Flash_Gordon 25.09.2007 23:39
Flash_Gordon
Tohle myslíš vážně? Tady nemůže jít o nějakou fuzzy logiku, kdy si vyzkouším, že "zhruba to funguje"…
Pavel 25.09.2007 23:49
Pavel
Přesně. ;-) Jak Squad_leader sám dvakrát zopakoval, Excel je především tabulkový kalkulátor (proceso…
MaSo 26.09.2007 00:10
MaSo
Klidně si pokusím zaspekulovat. Problém se údajně týká hodnot, které se pohybují okolo čísla 65 535.…
Flash_Gordon 26.09.2007 00:16
Flash_Gordon
Jsem tady :-) Já bych se program jako Excel, i s takovou chybou v žádném případě nestyděl odevzdat,…
Vladimir 26.09.2007 20:19
Vladimir
...protože bych v životě něco tak složitého nevytvořil. To bys ani nemohl, protože takhle složitý p…
MaSo 26.09.2007 20:34
MaSo
Fakt je nejlepší auto, které jede nejrychleji, ale občas jede jinam, než potřebuji? poslední
centsm 05.10.2007 09:59
centsm
Pokud se chybová hláška objevuje, je to předpokládaný stav. Horší ovšem je pokud se neobjevuje vůbec…
Flash_Gordon 25.09.2007 23:04
Flash_Gordon
Tady: http://groups.google.com/group/microsoft.public.exc el/browse_thread/thread/4e6aff0d1290f21c?h…
Jack 26.09.2007 13:37
Jack
Pravděpodobnost nalezení chyby v Oo je menší tolikrát, kolikrát méně uživatelů jej používá. Pro Oo a…
angel333 28.09.2007 19:42
angel333
Průser je jiná věc - tohle se ani nemělo dostat ven z MS, natož aby to prošlo rukama solidních betat…
Radši nikdo 28.09.2007 21:52
Radši nikdo
Jenže ono to vyšlo najevo víc jak rok od veřejné Bety. :-D Takže rok to nikdo nezjistil a ti blbci…
Flash_Gordon 28.09.2007 22:45
Flash_Gordon
Reakce MS byla vskutku pohotová
josephino 29.09.2007 22:12
josephino

Myslím, že to velmi rychle opraví, nejpozději v pravidelných měsíčních updatech kolem 10. :-?:-?:-?

By mě zajímaly náhrady případných škod... i když v té paullusově dábelské bibli (EULA, či jaxe to zove) jsou chytře chráněni proti náhradám škod, které by mohly userům vzniknout 3-[

A zkuste si v Excelu (i ve starších verzích než 2007) zadat do nějaké buňky číslo

40000,223

A nebo obecněji určeno, zkuste zadat číslo v intervalu (32768 - 65536) které má desetinnou část z této množiny{.098, .223, .348, .473, .598, .723, .848, .973}

Pak se podívejte do řádku vzorců - Excel vaše zadání nenechá jen tak...

Nápad na workaround. :beer:

Až uživatel skončí práci na tabulce v Excelu, uloží a otevře ji v OpenOffice Calc. Zkontroluje, zda se oba kancelářské balíky na finálních výsledcích alespoň přibližně shodují...

Postupem času první krok s Excelem odpadne a uživatel si vystačí jen s Oo

Já si nic o přechodu na Linux nebo Oo nemyslím. Možná jsem měl u posledního odstavce použít tři smajlíky nebo něco podobného, neboť je myšlen spíš sarkasticky a odlehčeně.

Nerad řeším zbytečné problémy a snažím se pracovat produktivně, proto Linux ani Oo osobně nepoužívám.

Třeba se na to jednou budeš dívat jinak.
Kdosi tady měl v podpisu heslo, které znělo nějak takhle:
Poslední chyba v programu je ve skutečnosti předposlední.
A podobné...

V aplikaci, která má desetitisíce programových řádků se přehlídneš velice snadno.

Právěže takováto chyba se hledá velice blbě.
Program si lze vlastně představit jako deterministický systém do kterého ti leze určitý počet (v tomto případě) dynamických vstupů:

[frchh2.gif]

Počet těchto vstupů je prakticky neomezený. A oni si to při vývoji vyzkoušejí třeba na
náhodném vzorku 10 000 vstupů a ty zrovna sedí (jsou OK).
Proto se taková chyba odhaluje extrémně špatně.

Průser to je bezpochyby, ale je tu zásadní rozdíl:
Excel je tabulkový procesor, ne domácí úkol.

Hmmm. Jenomže problém je v tom, že počítač dělá pouze to co mu řekneš.
Počítač neví jestli to co dělá je správné nebo špatné.
A když máš (prakticky) nekonečný počet hodnot na zpracování tak tady není nekonečno lidí a nebo člověk s nekonečným časem :-D.

Kromě toho je tady milión dalších věcí. Například nestačí totálně doprasit nějaký prográmek tak, aby fungoval.
Je potřeba také algoritmy optimalizovat, aby zabíraly pokud možno co nejmenší čas.
Aby tam nebyly tzv. memory-leaky (úniky paměti)...

Když tohle všechno a další věci doděláš přehlídneš chybu velice snadno.:-)

Tohle myslíš vážně? Tady nemůže jít o nějakou fuzzy logiku, kdy si vyzkouším, že "zhruba to funguje", nebo "tento vzorek dat dává správný výstupy". Tady jde přece o výpočet (s jistou mírou přesnosti, danou reprezentací čísel ve dvojkové soustavě). Pokud chybu neudělá procesor, pak je to evidentně podivná/záhadná chyba programátora(ů), kterej provádí s výpočtem cosi nestandardního. Normální kalkulačka ti takovou chybu neudělá, tahle verze Excelu jo. Sám si to nedokážu vysvětlit, na podtečení/přetečení to nevypadá...

Pavel

Klidně si pokusím zaspekulovat. Problém se údajně týká hodnot, které se pohybují okolo čísla 65 535.
Když se podíváme tak přesně této hodnotě odpovidá typ unsigned short int.

Například je možné, že program si interně přetypovává hodnoty tak, aby přesnost a zabraná paměť byla optimální.
(Excel je navržen pro velké datové bloky). A právě při daném přetypovávání na této mezní hodnotě se provede
chybná volba.

Sám používám (z donucení) Excel 2003 takže nevím, protože mě to funguje správně.

//Edit

Neobhajuji nikoho a M$ už teprve ne.

No raději tady ten odkaz ještě dám:
http://en.wikipedia.org/wiki/Floating_point#Range_o f_floating_point_numbers

...protože bych v životě něco tak složitého nevytvořil.

To bys ani nemohl, protože takhle složitý prohram snad ani nemůže vyvinout jeden člověk sám. Narážka na OO je opravdu bad joke, protože k čemu mi je rychlost, když program místo výsledků jednoduchého násobení vyhazuje hausnumera...:))

Pravděpodobnost nalezení chyby v Oo je menší tolikrát, kolikrát méně uživatelů jej používá. Pro Oo ale mluví otevřený zdroják, ve zdrojáku se totiž chyba hledá lépe, než pouhým testingem (u takle složitýho softwaru). Nicméně bych netvrdil, že je Oo bez chyby a MS Office jich tam má hodně.

Průser je jiná věc - tohle se ani nemělo dostat ven z MS, natož aby to prošlo rukama solidních betatesterů. Jenže ono to vyšlo najevo víc jak rok od veřejné Bety. Za tohle by někdo letěl, ať už je to problém plovoucí čárky, dvojkové soustavy, šulení s pamětí, zaokrouhlování nebo bůhvíčeho ještě. A neodskákal by si to programátor, který je na konci řetězce, ale ti blbečci z managementu a marketingu, kteří tlačí na to, aby to bylo rychle. Tady je evidentní, jak se přeskakují vývojová stadia softwaru. Podle mě je to typická ukázka toho, jak se nedělají testy na okrajové podmínky.

Zpět na aktuality Přidat komentář k aktualitě Nahoru