Новое в программировании и прохождение курса PHP. Я написал очень маленькую программу для проверки функции number_format. Вот мой код:
$num = 9876543210123456789;
$result = number_format($num);
echo = $result;
Результат: 9,876,543,210,123,456,512
Я уверен, что это как-то связано с длиной $ num. Но не смогли найти точное объяснение / причину, по которой это происходит.
Вы видите другое число, потому что предоставленное вами число достаточно велико, чтобы вызвать переполнение в вашей системе. Попробуйте с меньшим числом
<?php
$num = 9876543210123;
$result = number_format($num);
echo $result; // will show as expected, with formatting
Даже если вы не используете number_format
на этом номере ваш номер все равно вызовет переполнение. Попробуй это
$num = 9876543210123456789;
echo $num; // not what you see above
Также см:
Вы не можете передать большие числа number_format()
функция. Если вам просто нужно отформатировать число, вы можете написать свою собственную функцию для разделения чисел с запятой, принимая 3 на 3.
Причина в том, что если вы проверите руководство, числовой формат принимает первый параметр как число с плавающей запятой. Вы должны иметь хорошее понимание о float
, а также ints
чтобы понять, почему это происходит.
Вот что-то интересное, что я нашел в SO, это то же самое, что и ваш вопрос, и на него есть хороший ответ. Пожалуйста, проверь это.
Почему мое числовое значение изменяется с помощью number_format ()?