Привет всем! Подскажите плис кто знает в чем фишка програмлю на пхп не первый день , но такого ещё не видел!! ) Есть следующий код: Код (Text): $a = pow( 1 + $L10 - $s , 0.25 ); $b = pow( log10( $pop ) , 0.2 ) $C = $a * b; print $C; видим такую штуку при этом, такая ситуация посторяется не всегда, а только в некоторых случаях - видимо от исходных чисел зависит в рандомной зависимости. Кто-нибудь сталкивался? Есть идеи как избавится от этой штуки и получить нормальное число? ) P.S. Поиск юзал - выдает какую то чушь )
Очень похоже, полно синтаксических ошибок. Правильный вариант: Код (Text): $param1=310; $param2=10; $param3=30; $param4=120; $a=pow($param1+$param2-$param3,0.25); $b=pow(log10($param4),0.2); $c=$a*$b;
Вась, от того, что ты поменял имена переменных ничего не изменится. Синтаксических ошибок тут нет, код полностью рабочий, НО в некоторых случаях начинает выдавать чушь. Это, конечно, далеко не весь код - полный код постить не буду ибо незачем, ошибко именно в этом месте... Есть ещё варианты по делу? )
INF - Это infinity, т.е. бесконечность: PHP: <?php echo pow(999999999999999999999999999999999999999999999999999999, 999999999999999999999999999999999999999999);
на самом деле решил проблему таким образом: Код (Text): function trimNumber( $num ) { return round( 10000 * $num ) / 10000; } $a = trimNumber( pow( 1 + $L10 - $s , 0.25 ) ); $b1 = trimNumber( log10( $pop ) ); $b = trimNumber( pow( $b1 , 0.2 ) ); $C = $a * b; print $C; ну а насчет появления именно 1.#INF там где его совсем не ждут - это недоработка пхп - по всей видимости, у флоата сдвигается точка не вправо, а влево, вытесняя целую часть (хотя хз реально))
бесконечность конечна, если там где она возникает есть предел языки программирования не могут считать бесконечность, всем числам в них есть свой предел