Dělení desetinných čísel v PHP

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
maslo
Člen | 6
+
0
-

Ahoj,
je to sice mimo Nette, ale nějak mi to neleze do hlavy, tak kdybyste někdo věděl, proč se to stalo, budu vděčný :-)

měl jsem kód:

<?php
$delc = 100*$item->ourPrice;
$delt = 100*$item->originalPrice;
$pod = $delc/$delt;
$disc = 100 - $pod;
if ($disc == 100) {
	echo "$delc/$delt = $pod -> $disc % sleva \n"; //vypíše 0/1000 = 0 -> 100 % sleva
	echo "$item->ourPrice"; //vypíše 0.99
}
//samozřejmě je to po značných úpravách, kde jsem se snažil najít chybu, jinak jsem to měl ve 2 řádcích..
?>

Jistě jste zaregistrovali, na co narážím, když jsem dělil desetinné číslo, tak se prostě zaokrouhlilo dolů, většinou na 0 (možná i na jiná čísla, ale pozoroval jsem chování jen u 100% slev…).

Podařilo se mi to vyřešit až tím, že jsem dělil stringem (protože když jsem toho dělence vypisoval, tak se vypsal správně).
EDIT: Nepodařilo se mi to vyřešit vůbec, furt si to počítá jak chce :-/

JAK JE TO MOŽNÉ?

<?php
$delc = 100*"$item->ourPrice";
$delt = 100*"$item->originalPrice";
$pod = $delc/$delt;
$disc = 100 - $pod;
if ($disc == 100) {
	echo "$delc/$delt = $pod -> $disc% sleva \n";
	echo "$item->ourPrice";
}
?>

Předem děkuji pokud někdo máte nějaké vysvětlení, případně radu jak to udělat elegantněji, ten string se mi tam taky nelíbí..

Editoval maslo (22. 11. 2012 22:25)