Я озадачен тем, что означают эти цифры. Мне кажется, что printf дает мне неправильные результаты.
echo printf("%.2f", 1); // 1.004 echo printf("%.3f", 1); // 1.005 echo printf("%.2f", 1.1234); // 1.124
Прежде всего, кажется, печатает слишком много десятичных знаков, и я понятия не имею, что это за числа. Может кто-то пролить свет на этот вопрос?
Просто. printf()
имеет возвращаемое значение, которое является целым числом. И это значение – длина результирующей строки. Таким образом, ваш код выполняет две функции:
printf()
echo()
результат, который является длиной для каждой строки. Это потому, что вы видите, например, 1.004
для первого случая. Это 1.00
с 4
(и длина строки "1.00"
– 4
)
Если вы намерены распечатать форматированную строку, используйте printf()
как есть:
printf("%.2f", 1);
Или используйте sprintf()
с эхом:
echo sprintf("%.2f", 1);