Я должен сделать расчет, вот упрощение того, чего я пытаюсь достичь:
$box['dim1'] = 1; $box['dim2'] = 1; $box['dim3'] = 1; $volume = (($box["dim1"]/100) * ($box["dim2"]/100) * ($box["dim3"]/100)); echo $volume;
В этом случае я вижу:
1.0E-6
Вместо 0,000001, как и следовало ожидать.
Это довольно экстремальный пример, и dim1, dim2 и dim3 вряд ли когда-либо будут равны 1, но мне нужно, чтобы значение $ volume было числом, поскольку оно передается стороннему API, и им не нравится 1.0E-6 ,
Есть ли в любом случае, я могу получить $ volume равным 0.000001, а не 1.0E-6?
Научная нотация – это по умолчанию PHP для печати очень больших или крайне малых чисел в виде строк.
Используйте printf()
для печати вашего поплавка в десятичном формате:
printf('%f', $volume);
Если вы просто хотите отформатировать номер, используйте number_format. Если вы предоставите второй аргумент, он пойдет во многие места.
$box['dim1'] = 1.0; $box['dim2'] = 1.0; $box['dim3'] = 1.0; $volume = (($box["dim1"]/100.0) * ($box["dim2"]/100.0) * ($box["dim3"]/100.0)); echo number_format($volume, 6);
0.000001 – 1.0E-6, это просто переход к научным экспоненциальным показателям для отображения его (представьте, что покажите очень маленькие цифры другими способами).
Теперь вы можете использовать функцию printf () вместо этого, а затем указать отображение данных, как вы сочтете нужным.
При работе с значениями с плавающей запятой, если вам нужно вывести его значение, вы всегда должны форматировать значение .
В PHP вы можете использовать функцию number_format :
echo number_format($volume, 6);