|
|
|
| подскажите, почему выдаёт "BLOSHE"
<?php
$a = 1.11123;
$a = round($a,2);
$b = 1.12;
echo "$a<br>";
echo "|$a - $b| = ",abs($a-$b),"<br>";
if(abs($a-$b)>0.01)
echo "BLOSHE";
else echo "RAVNO";
?>
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(17.01.2008 в 16:57)
| | Как-то раз была такая тема. Trianon там все достаточно подробно расписывал. Связано это с двоичной системой исчисления и числами с плавающей точкой. | |
|
|
|
|
|
|
|
для: MIchail1982
(17.01.2008 в 16:57)
| | if ($a-$b > 0.01) и будет вам равно. | |
|
|
|
|
|
|
|
для: sim5
(17.01.2008 в 17:45)
| | мне нужно отследить значения на +-1 копейка | |
|
|
|
|
|
|
|
для: MIchail1982
(17.01.2008 в 17:59)
| | bccomp(abs($a-$b), 0.01) тогда вам не ошибется. | |
|
|
|
|
|
|
|
для: MIchail1982
(17.01.2008 в 16:57)
| | Посмотрите
echo "|$a - $b| = ", printf ("%0.15f", abs($a-$b)); | |
|
|
|
|
|
|
|
для: kasmanaft
(17.01.2008 в 18:04)
| | 2 kasmanaft
интереснинько | |
|
|
|
|
|
|
|
для: MIchail1982
(17.01.2008 в 18:08)
| | Приведите числа к int (копейкам), потом сравнивайте:
<?php
$a = 1.11123;
$b = 1.12;
$a = (int) round($a*100);
$b = (int) round($b*100);
if(abs($a-$b)>1)
echo "BLOSHE";
else echo "RAVNO";
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(17.01.2008 в 18:21)
| | Дельный совет. | |
|
|
|