Что это значит и как решить? — 3.55687428096E + 14

Итак, мне нужен этот номер 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!

0

Решение

Вы можете использовать функцию number_format (), если ваш номер слишком велик.

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/>";
?>
0

Другие решения

Измените последнюю строку с:

echo number_format($fact,0) ."<br/>";
0

@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>";

?>

0
По вопросам рекламы [email protected]