2012-11-10 2 views
0

присваивается номер и п, я хочу, чтобы отформатировать его следующим образом:PHP формат номера с несколькими правилами

  1. , если это целое число (без десятичной точки), просто вернуть его
  2. если он имеет x десятичную точку, показывает только m десятичной точки, где m - минимум x и n.

number_format не может этого сделать, что было бы самым простым способом достичь этого?
несколько примеров:

 
input: number = 60, n=1, output: 60 
input: number=60.0, n=0, output: 60 
input: number = 60.0623, n=1, output: 60.0 
input: number = 60.06, n=3, output: 60.06 
+0

Я не понимаю, точка 2 на всех. Можете ли вы предоставить образцы входов и выходов? –

+0

также, что вы пробовали? –

+0

Я до сих пор не понимаю вопроса – Alfo

ответ

1

ответ

 
round($number,$maxdecimals) 
+0

Это не добавляет тысячи разделителей. –

+0

это также не работает до 8 десятичных знаков –

2

Попробуйте это:

$number = 12345; 
$maxdecimals = 5; 
echo rtrim(rtrim(number_format($number,$maxdecimals),"0"),"."); 

Это будет обрезать замыкающие нули, и десятичной точки, если есть только нули после него. В этом случае вы получите 12,345.

+0

Хорошее решение. Он оставляет в стороне пару краев, но, скорее всего, ничего не заботит OP. – FtDRbwLXw6

+0

Попробуйте использовать '$ number = 1000'. Doh. –

+0

Может работать лучше с регулярным выражением (но будьте осторожны с тем, что символизирует тысяча разделителей). –

Смежные вопросы