Итак, мне нужен этот номер 3.55687428096E+14
на самом деле выглядеть как правильное целое число. Я не уверен, что нужно сделать, чтобы оно выглядело как целое число, чтобы я мог продолжить свое кодирование. В основном, без разрешения этого числа 3.55687428096E+14
Я не могу действовать правильно. Ниже мой код, пожалуйста, помогите!
<?php
$num = 17;
$fact = $num;
echo "The factorial of $num is $num X ";
while ($num > 1){
--$num;
if ($num != 1){
echo "$num X ";
}
else{
echo "$num <b>equals</b> ";
}
$fact = $fact * $num;
}
echo $fact ."<br/>";
?>
Кстати, номер 3.55687428096E+14
результат, который я получаю после запуска программы. До факториала 16 все идет хорошо, но как только оно превращается в 17, все становится 3.55687428096E+14!
Вы можете использовать функцию number_format (), если ваш номер слишком велик.
Функция number_format () форматирует число с сгруппированными тысячами.
Ваш код
<?php
$num = 17;
$fact = $num;
echo "The factorial of $num is $num X ";
while ($num > 1){
--$num;
if ($num != 1){
echo "$num X ";
}
else{
echo "$num <b>equals</b> ";
}
$fact = $fact * $num;
}
echo number_format($fact) ."<br/>";
?>
Измените последнюю строку с:
echo number_format($fact,0) ."<br/>";
@Mark Baker: — мой код, который был успешно выполнен благодаря вашей информации и поддержке:
<?php
echo "<h2>Find the sum of the digits in the number 100!</h2>"."<br/>";
$num = 100;
$fact = $num;
echo "The factorial of $num is $num X ";
while ($num > 1){
--$num;
if ($num != 1){
echo " $num X ";
}
else{
echo " $num";
}
$fact = bcmul($fact,$num); //right over here!
}
echo " which equals" ."<br/>". "<h3>$fact</h3>";
//proceeding now to calculate the sum of the digits of the factorial!
$_array = str_split($fact);
$sum = array_sum($_array);
echo "The sum of the digits of the factorial is " ."<br/>";
echo "<h3>$sum</h3>";
?>