Как использовать sprintf для вывода числа с плавающей запятой, меньшего, чем 1, без начального десятичного знака? - PullRequest
1 голос
/ 07 февраля 2020

Я пытаюсь использовать sprintf для вывода числа с плавающей точкой без нуля. Числа всегда меньше 1

0.12345 => .12345

Моя попытка:

<?php
$string = sprintf('%0.6F',0.12345678);

Я получаю "0.123457", но мне нужно ".123457". Я могу сделать это с помощью ltrim:

$string = ltrim(sprintf('%0.6F',0.12345678),'0');  //string(7) ".123457"

Существует ли специальный формат, который можно выполнить только с помощью sprintf?

1 Ответ

2 голосов
/ 07 февраля 2020

Невозможно обрезать ноль перед десятичной дробью, как любая опция с sprintf() и float.

sprintf () fF

Двойной аргумент округляется и преобразуется в десятичную запись в стиле [-] ddd. ddd, где количество цифр после символа десятичной точки равно спецификации точности. Если точность отсутствует, она принимается за 6; если точность явно равна нулю, символ десятичной точки не появляется. Если появляется десятичная точка, перед ней появляется хотя бы одна ди git.

http://www-sbras.nsc.ru/cgi-bin/www/unix_help/man-cgi?sprintf

В качестве альтернативы ltrim() вы может использовать substr возможно:

substr(sprintf('%.6f', 0.12345678), 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...