Значение переменной php действует как ноль - PullRequest
0 голосов
/ 02 октября 2018

Когда я работал над проектом, у меня была ошибка, которая я не мог понять, почему это происходит.В моем коде я читаю строку из API, которая является числом, но возвращаемым API является строка, поэтому я делаю $mynumber = floatval($mynumber);, и она отлично работает.Но после выполнения математической операции, такой как $newnumber = $mynumber * 1.5;, я получаю странную ошибку.

echo $newnumber;

возвращает число как "8.5E-6", что совершенно нормально и показывает, что $newnumber содержит значение.Также echo gettype($newnumber); также возвращает "double", поэтому все выглядит идеально.Но всякий раз, когда я пытаюсь распечатать ввод как

echo number_format($newnumber);

, он просто выводит «0» на экран.Кроме того, если я пытаюсь использовать эту переменную $ newnumber в curl, я получаю сообщение об ошибке на веб-сайте, который я пытаюсь вызвать apis, и он говорит: «значение не может быть 0», поэтому кажется, что значение этой переменной также передается как0 по запросу API.

Когда я пытаюсь использовать number_format для первой переменной, перед умножением она возвращает значение без каких-либо проблем, поэтому проблема не в функции number_format.

На данный момент я застрял и не знаю, как решить эту проблему, любая идея?

1 Ответ

0 голосов
/ 02 октября 2018

если echo $newnumber равно 8.5E-6, то это число в десятичном виде должно быть 0.0000085.
number_format () принимает количество десятичных знаков, которое вы хотите отобразить в качестве второго параметра (по умолчанию 0).Поскольку у вас есть число x10-6 с одним десятичным знаком, вам понадобится как минимум 7 десятичных знаков.

echo number_format($newnumber, 7);

будет выводить

0.0000085
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...