приведение к целому типу в выражении

BAR23

Новичок
приведение к целому типу в выражении

Есть проблемка. :) Может Вы раскажете почему даёт такой результат.
PHP:
$PDV=$Row_object['Price']*0.2;
			switch ($Row_object['Riznucya'])
			 {
			   case "1": {$PDV=$PDV+$Row_object['Pdv']; $Row_object['Pdv']="+".$Row_object['Pdv']; break;};
			   case "2": {$PDV=$PDV-$Row_object['Pdv']; $Row_object['Pdv']="-".$Row_object['Pdv']; break;};
			 };
//например $PDV=66.85			 
			 //$PDV=((int)$PDV).".".((int)(($PDV-((int)$PDV))*100));

			 $PDV_int=(int)$PDV; 
			 $PDV=$PDV-$PDV_int;  //такое выражение даёт рез. 66.85-66=0.84999999999999
			 //$PDV=sprintf('%.2f',$PDV);
Мне нужно точный результат
 

Dovg

Продвинутый новичок
Хоть бы в предудущей теме поблагодарил

http://php.net/float
Это связано с невозможностью точно выразить некоторые дроби в десятичной системе счисления конечным числом цифр. Например, 1/3 в десятичной форме принимает вид 0.3333333. . ..
-~{}~ 06.05.08 12:23:

По ссылке кстати написано, что надо делать, если нужна высокая точность
 

BAR23

Новичок
Dovg
Сасибо. Но я так и не понял как round использовать. :(
Плохо работать админом и програмером!!!! :(
 
Сверху