например, позволяет сказать, что я хочу 3
цифры, то:Как отформатировать номер так, чтобы он имел определенное количество цифр?
1 -> 1.00
10 -> 10.0
100 -> 100
1000 -> 1000 // don't lop off any numbers, as they're all significant
Я думал, что я мог бы сделать это с помощью:
number_format($n, max(0,$digits-strlen((string)intval($n))), null, '')
, который работает для всех перечисленных выше случаев, но она не для 99.99
(предоставления 100.0
вместо 100
).
Так что я не совсем уверен, как это сделать. Подсчет количества цифр перед десятичной точкой не будет работать, потому что он может измениться после округления.
N.B. когда я говорю «цифры», я имею в виду общее количество цифр, до и после запятой. Также обратите внимание, что это не совсем то же самое, что «значимые цифры», так как я считаю «1000» «4 цифрами», что означает «1 значимая цифра» и «0 десятичных цифр».
@ Dagon Я не уверен, как я могу это сделать без предварительного тестирования, если округление добавит еще одну цифру, но да, я уверен, что смогу что-то придумать. – mpen
@PaulCrovella Да, этот вопрос касается форматирования. Округление должно выполняться только тогда, когда есть десятичные значки, и они не могут вписываться в выделенное количество цифр. – mpen
Это не про округление? Потому что для округления у вас есть хорошие функции, которые отлично округляются. Какова ваша цель? – markus