Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 8. 2. 2013 10:50:07

gucky
Člen
Registrace: 18. 4. 2008
Příspěvků: 140

podivné odečítání - VYŘEŠENO

Vložil jsem do
A1=75,4
B1=75,1
C1=A1-B1

C1 by mělo být 0,3, že?
Testuju =if(abs(c1)<=0,3;"Ok";"---")
a u některých výsledků 0,3 se objeví ---

Tak jsem změnil formát buněk na číslo s 20 desetinnými místy, a ejhle
A1 = 75,40000000000000000000
B1 = 75,10000000000000000000
C1 = 0,30000000000001100000

Co ty 2 jedničky v C1

Editoval gucky (12. 2. 2013 09:46:59)

Offline

#2 8. 2. 2013 14:48:53

Ondra.kl
Člen
Registrace: 30. 9. 2008
Příspěvků: 933

Re: podivné odečítání - VYŘEŠENO

strašně starý bug v zobrazení čísel se strašně moc platnými čísly, která v praxi ani nejdou využít ... resp. se pro ně píší speciální aplikace aby šlo s takovými čísly počítat.

Offline

#3 8. 2. 2013 15:36:31

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 842

Re: podivné odečítání - VYŘEŠENO

Porovnávat desetinná čísla a halvně výsledky výpočtů na přesnou shodu je poněkud nevhodné.
Lépe nějak tak:

=if(abs(c1-0,3)<1e-10;"Ok";"---")

nebo pro někoho čitelněji

=if(round(abs(c1);10)<=0,3;"Ok";"---")

calc reálně počítá do cca 15 platných míst. Při počítání se chyby mohou kumulovat.

Offline

#4 12. 2. 2013 09:46:39

gucky
Člen
Registrace: 18. 4. 2008
Příspěvků: 140

Re: podivné odečítání - VYŘEŠENO

Aha, jasné,
to řešení s ROUND mě napadlo taky.
Jen jsem chtěl vědět, jestli sa tomu možu nejak vyhnút...
Takže VYŘEŠENO

Offline

Zápatí