BF Summer sales
Pouze tento týden sleva až 80 % na HTML & CSS a JavaScript
80 % bodů zdarma na online výuku díky naší Letní akci!
Avatar
Filip
Člen
Avatar
Filip:9.6.2019 19:25

Asi 4 hodiny riesim velmi banalny problem:

$cislo1 = $array[$i]['suma'] / $pocet ;
$cislo2 = $array[$i]['cislo'];

if ($cislo1 != $cislo2) {
 echo $cislo1;
 echo $cislo2;
 }

Problem je ten, ze podmienka sa niekedy vykona, hoci su cisla rovnake! Nechavam si ich vypisat cize vidim ze su naozaj rovnake.

Zkusil jsem:

$cislo1 = (float)$array[$i]['suma'] / $pocet ;
$cislo2 = (float)$array[$i]['cislo'];

if ($cislo1 != $cislo2) {
 echo $cislo1;
 echo $cislo2;
 }

...alebo:

$cislo1 = (float)$array[$i]['suma'] / $pocet ;
$cislo2 = (float)$array[$i]['cislo'];

if ($cislo1 <> $cislo2) {
 echo $cislo1;
 echo $cislo2;
}
 
Odpovědět
9.6.2019 19:25
Avatar
Odpovídá na Filip
Martin Konečný (pavelco1998):9.6.2019 19:33

A když si řádek před tím ifem dáš

var_dump($cislo1);
var_dump($cislo2);
exit;

tak to vypíše co?

Edit: vypadá to, že to je kousek kódu v nějakém cyklu. Jsi si jistý, že při daném průchodu cyklu s $i jsou daná čísla vážně stejná? Tzn. zda to není například tak, že se podmínka splní v prvním průchodu, ve druhém, ale ve třetím už ne (a tam že už jsou čísla jiná)?

Editováno 9.6.2019 19:33
Nahoru Odpovědět
9.6.2019 19:33
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Filip
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Filip:9.6.2019 20:00

var_dump pouzit nemozem, kod mi to nedovoluje, resp. nevie vypisovat priamo na obrazovku text. Viem vypisat iba obsah premennych a tam su tie cisla rovnake.

Ale aj pri debugovani vo Visual Code vidim, ze tie premenne obsahuju rovnake cisla, su aj rovnakeho typu a ajtak mi to skoci do vnutra podmienky a vykona kod co je v podmienke.... po dlhej dobe si naozaj neviem rady.

 
Nahoru Odpovědět
9.6.2019 20:00
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Filip
Člen
Avatar
Filip:9.6.2019 20:16

screen z debugu

 
Nahoru Odpovědět
9.6.2019 20:16
Avatar
Petr Langer
Člen
Avatar
Odpovídá na Filip
Petr Langer:9.6.2019 21:14

Problém bude v tom, že porovnáváš floaty a ikdyž se vypisujou jako stejná čísla, tak se ve skutečnosti mohou lišit třeba o jednu miliontinu. Zkus ty čísla zaokrouhlit třeba na čtyři desetinná místa a uvidíš, jestli je to ten problém

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
9.6.2019 21:14
Avatar
Filip
Člen
Avatar
Odpovídá na Petr Langer
Filip:9.6.2019 22:54

Jo, zda sa ze to pomohlo. V tom konkretnom priklade zo screenshotu sa vydelilo cislo 2.1 cislom 6 cize vysledok je 0.35. Ale asi to cislo nebude interne ulozene ako presne 0.35 hoci ho tak ukazuje aj debuger. Kazdopadne diky!

 
Nahoru Odpovědět
9.6.2019 22:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.