2.1E-5 - это то же число, что и 0,000021. То, как печатает цифры ниже 0,001. Используйте printf(), если вы хотите его в определенном формате.
Изменить Если вы не знакомы с синтаксисом 2.1E-5, вы должны знать, что это сокращенная версия 2.1 × 10 -5. Именно так большинство языков программирования представляют числа в научной нотации.
Ответ 3
В общем случае число - это число, а не строка, и это означает, что любой язык программирования рассматривает число как число. Таким образом, число само по себе не подразумевает какого-либо конкретного формата (например, используя .000021 вместо 2.1e-5). Это не имеет ничего общего с отображением числа с ведущими нулями (например, 0.000021) или выравниванием списков чисел. Это общая проблема, которую вы найдете на любом языке программирования: если вам нужен конкретный формат, который вам нужно указать, используя функции формата вашего языка программирования.
Если вы не укажете номер как строку и, конечно, переведите его в реальное число. Некоторые языки могут делать это неявно.
Ответ 4
Используйте number_format или sprintf, если вы хотите увидеть номер, как вы ожидаете.