2013-03-14 3 views
-3

"9239"라는 숫자가 "9.24"로 표시되기를 바랍니다. "9.2"에 대한 Ditto는 "9.20"을 표시합니다. "10"에 대한 동감 sprintf가 잘 작동하지 않습니다.

나는

$carat = sprintf ('%02d.2f', $carat);

사용하지만 이것은 않습니다 당신이 나를 도와 줄 수 없습니다

... "10.00"을 나타 납니까?

+0

왜'9239' 디스플레이'9.24'하지만'10' 디스플레이'10.00' 것? –

+0

그래, 그건 말이 안돼. 나는 그가 9200과 1000을 입력 값으로 의미한다고 생각한다. – ThiefMaster

답변

1

() 함수

Exampel php.net에서 촬영이 같다 먼저 적절한 숫자로 변환 다음과 같습니다.

<?php 

$number = 1234.56; 

// english notation (default) 
$english_format_number = number_format($number); 
// 1,235 

// French notation 
$nombre_format_francais = number_format($number, 2, ',', ' '); 
// 1 234,56 

$number = 1234.5678; 

// english notation without thousands separator 
$english_format_number = number_format($number, 2, '.', ''); 
// 1234.57 

?> 

돈을 위해 특별히 제공되는 기능이 있다고 제안 할 수도 있습니다. money_format()

money_format() 함수는 setLocale에 따라 조정됩니다.

number_format() on php.net

+1

의견을 수정하는 것을 고려해보십시오. 의견보다는 답이 더 많습니다. 대답에 실제 코드를 넣으십시오. – ThiefMaster

2

printf 서식을 사용하면이 작업을 수행 할 수 없습니다.

$carat = sprintf('%.02f', $carat/1000); 

데모 :

난 당신이로 number_format에서 좋은 모습을 제안
php > printf("%.02f\n", 9239/1000); 
9.24 
php > printf("%.02f\n", 9200/1000); 
9.20 
+0

이것은'$ carat = 10'에 대해 작동하지 않습니다. –

+0

아마도 OP는 말도 안되는 소리로 게시되었습니다. – ThiefMaster

관련 문제