2012-05-25 3 views
0

제 프론트 페이지에 가격을 표시하고 싶습니다. 10000 표시 : 10,000 PHP의 숫자 형식

  • 체결 가격 : 10000.10 디스플레이 : 10,000.1
  • 체결 가격 : 10000.01 디스플레이 : 그러나 필요한 수의 형식은

    • 입력 한 가격이며, 10,000.01

    나는 경우 다음 코드를 사용하고 있습니다

    echo number_format ($price,2,'.',','); 
    

    그러나 결과는 이러한 방식으로 표시됩니다.
    체결 가격 : 10000 디스플레이 : 10,000.00

    나에게이 문제

  • 답변

    3

    money_format()라는 PHP에서 함수가 있습니다를 해결하는 데 도움이 바랍니다.

    가격을 표시 할 때 특히 더 의미가 소수점 2 개 자리를 가지고,보기의 명확성과 일관성 관점에서, 확실히

    +0

    방법이 도움이 money_format합니까? 그것은 가변 십진법을 고려하지 않습니다. 형식 지정자에 원하는 수를 입력해야합니다. – barryhunter

    1

    http://php.net/manual/en/function.money-format.php에에서보세요.

    @barryhunter가 유효하고 다음 사항이 작동하지 않습니다.

    echo rtrim(number_format($price,2,'.',','),'0.'); 
    

    그러나이 작업을 수행합니다

    trim(trim(number_format($price,2,'.',','),'0'),'.'); 
    

    봐 : 당신은 2 decimial 점의 수를 설정 한

    <?php 
    $a=array('10000.00','10000.10','10000.01'); 
    
    foreach ($a as $price) 
    { 
        echo $price.' - '.rtrim(rtrim(number_format($price,2,'.',','),'0'),'.')."\n"; 
    } 
    ?> 
    
    $> php -f t.php 
    10000.00 - 10,000 
    10000.10 - 10,000.1 
    10000.01 - 10,000.01 
    
    +1

    작동하지 않으면 실제 숫자에서 끝 0을 제거하므로 $ price = 10000; 그것은 "10"을 출력합니다. 원하는 것이 아닙니다! – barryhunter

    +0

    @barryhunter - 좋은 지적입니다. 내 사과. 내 대답을 무시하십시오. 그거 아니야! – DaveyBoy

    +0

    확인. 나는 다른 생각을하고 나의 이전의 대답을 분류했다. @ barryhunter에 대한 명성 - 감사합니다! – DaveyBoy

    1

    는 10,000.00이 왜 그렇게 즉.

    echo number_format ($price,1,'.',','); 
    

    을 또한 당신이 돈을 값으로 작업하는 경우 money_format를 사용하는 것이 좋습니다 :이 방법으로 사용자에게보십시오.

    +1

    OP는 '10,000.01'에 2 개의 소수점과 '10,000.1'에 1 개의 소수점을 원합니다. – flowfree

    0

    개인적으로 나는 10,000.1 그냥 나에게 이상한 보이는 가격을 표시

    echo number_format($price,floor($price)==$price?0:2,'.',','); 
    

    할 것입니다.

    하지만 당신이 정말로 댓글에 답글 달기에서

    $bits = explode('.',$price); 
    echo number_format($price,strlen($bits[1]),'.',','); 
    

    (편집), 그것은 나를 위해 작동해야하는 경우 ...

    <?php 
    $a=array(10000.00,10000.10,10000.01); 
    
    foreach ($a as $price) 
    { 
        $bits = explode('.',$price); 
        echo $price.' - '.number_format($price,strlen($bits[1]),'.',',')."\n"; 
    } 
    ?> 
    
    $ php t.php 
    10000 - 10,000 
    10000.1 - 10,000.1 
    10000.01 - 10,000.01 
    
    +0

    burryhunter. 답장을 보내 주셔서 감사합니다. 하지만 불행히도 그것은 10000.01 또는 10000.1에 대해 작동하지 않습니다 –

    +0

    나를 위해 단어를 표시하는 회신을 업데이 트 ... – barryhunter