2013-05-17 11 views
7

Jak mogę sformatować float przez sprintf, tak jak robiłbym przed number_format()? muszęNumer w formacie sprintf PHP podobny do number_format

  • żadnych dziesiętne
  • kropki jako separatora tysięcy

Z number_format() Chciałbym zrobić

$number = number_format(1599, 0, ".", ","); 

Wynik powinien być:

1599 => 1.500 
899.99 => 899 
70 => 70 

Czy jest to możliwe przy użyciu sprintf()?

poważaniem, Robert

+0

miałeś na myśli wszystkich '' '.' przez? –

+1

Nie sądzę, że 'sprintf' obsługuje separator tysięcy. Czy istnieje jakikolwiek powód, dla którego 'numer_format' nie może być użyty? –

+0

Myślę, że '1599 => 1.500' powinien przeczytać' 1599 => 1.599', jeśli dobrze rozumiem pytanie. – core1024

Odpowiedz

9
sprintf('A number: %s', number_format(1599, 0, '.', ',')) 

Nie, nie ma innego sposobu. (s)printf nie ma opcji dodawania separatorów tysięcy.

1

można użyć:

sprintf("%.2f", $val); 
+1

To nie dodaje separatora tysięcy (ani nie zmieniaj go na "."). Jeśli podzielona przez 1000, może pracować dla liczb do miliona, ale nie więcej: 'sprintf ('% .3f', $ val/1000)' – Owen