Kupecké počty – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kupecké počty – Visual Basic – Fórum – Programujte.comKupecké počty – Visual Basic – Fórum – Programujte.com

 

Martin
~ Anonymní uživatel
1602 příspěvků
24. 9. 2007   #1
-
0
-

Je chyba ve Vb6, v mém pc anebo ve mně?

Mám dvě proměnné, obě jsou typu single. Ale na mé požadavky odpovídá program naprosto nelogicky:


Print tpBody(ip).od
7

Print SiB
7

If (tpBody(ip).od = SiB) then Print "7 = 7" Else Print "7 <> 7"
7 <> 7

If (tpBody(ip).od < SiB) then Print "7 < 7"

If (tpBody(ip).od > SiB) then Print "7 > 7"
7 > 7


Jsem zoufalýýýý :)

Nahlásit jako SPAM
IP: ...–
jkonopasek0
Návštěvník
24. 9. 2007   #2
-
0
-

Proměnná single má plovoucí řádovou čárku a sedmička (uložená v paměti) nemusí být sedmička ale např. 6.99999999999. Ovšem příkaz Print vytiskne 7.
K tomu dochází zejména tehdy, jdyž číslo v proměnné single vznikne výpočtem.
Podle toho, že Váš test If (tpBody(ip).od > SiB) then Print "7 > 7" je pravdivý, by to tak mohlo být (jedno z čísel není sedmička).

Zkuste vytisknout pomocí Format, abyste program donutil zobrazit čísla za desetinnou tečkou.

Print Format(tpBody(ip).od, 00.000000000)
Print Format(SiB, 00.000000000)

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
24. 9. 2007   #3
-
0
-

Já teda sice ve VB nedělám, ale obecně porovnávat desetinné čísla na rovnost je blbost. Obvykle se to dělá tak, že se vezme absolutni hodnota jejich rozdílu a porovná se, zda je menši než nějaký tebou určený etalon.Příklad:



A = 7.0;
B = 6.8;
C = B+0.2;

ABS(A-C) < 0.001 then ....

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Jednoduche pocty — založil Hlavinka

Počty-dotazy — založil xjx

Pocty podgrafu grafu — založil sorce

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý