Кто-нибудь знает, почему это происходит, и если оно может быть исправлено. Я сравниваю результаты с C и PHP, но PHP дает мне разные результаты.Почему PHP float division и POW дают неправильные результаты и неожиданные результаты?
Я могу предоставить некоторый код при необходимости, но кто-нибудь испытал это раньше?
Благодаря
PHP код
$tempnum = 1.0e - 5 * -44954; // substr($line1,53,6); $bstar = $tempnum/pow(10.0, 3); $bstar gives me -0.00044954 in PHP but it should be -0.000450
C код
double tempnum = 1.0e - 5 * -44954; double bstar = tempnum/pow(10.0, 3); printf bstar gives me -0.000450
Спасибо за ваши ответы до сих пор, но как PHP пришел к такому выводу ...
$twopi = 6.28318530717958623; /* 2*Pi */ $xmnpda= 1440; //1.44E3 ; /* Minutes per day */ $temp = (($twopi/$xmnpda)/$xmnpda); $xndt2o = -0.000603; $xndt2o = $xndt2o * $temp; echo $xndt2o gives me -1.8256568188E-9 in PHP but in C it gives me -0.000000
Я не знаю, что t все, что происходит в PHP.
Благодарности
Необходимо указать код. – erjiang
Возможный дубликат [Точность вычисления PHP float] (http://stackoverflow.com/questions/3957705/the-accuracy-of-php-float-calculate) и сотни других вариантов по этому вопросу –
Вы должны указать код прямо сейчас. И расскажите, как они отличаются, каковы результаты и что вы ожидаете. (Также: PHP реализован в C, он, возможно, использует C-двойники под капотом.) – delnan