2013-10-28 67 views
1

我想數字轉換爲印度貨幣格式像轉換號碼印錢格式

100000 = 1,00,000 

我使用

$explrestunits = "" ; 
     if(strlen($num)>3){ 
      $lastthree = substr($num, strlen($num)-3, strlen($num)); 
      $restunits = substr($num, 0, strlen($num)-3); // extracts the last three digits 
      $restunits = (strlen($restunits)%2 == 1)?"0".$restunits:$restunits; // explodes the remaining digits in 2's formats, adds a zero in the beginning to maintain the 2's grouping. 
      $expunit = str_split($restunits, 2); 
      for($i=0; $i<sizeof($expunit); $i++){ 
       // creates each of the 2's group and adds a comma to the end 
       if($i==0) 
       { 
        $explrestunits .= (int)$expunit[$i].","; // if is first value , convert into integer 
       }else{ 
        $explrestunits .= $expunit[$i].","; 
       } 
      } 
      $thecash = $explrestunits.$lastthree; 
     } else { 
      $thecash = $num; 
     } 
     return $thecash; // writes the final format where $currency is the currency symbol. 

但是當我使用減號(-)10000(五位數)它返回輸出0,10,000

它應該是-10,000 你有什麼想法..

+0

'money_format()'依賴於語言環境。在調用函數之前設置區域設置。你不需要編寫自己的'money_format()'函數 – Raptor

+0

@ User016,它不是我想要在我的函數中發現錯誤的任何重複,而不是另一種解決方案。因此,請先閱讀問題,然後再發表評論。 –

+1

在發佈問題之前,您必須查詢現有問題。檢查是否存在類似問題。 @Sameer –

回答

3

嘗試是這樣的

<?php 
$amount = '100000'; 
setlocale(LC_MONETARY, 'en_IN'); 
$amount = money_format('%!i', $amount); 
$amount=explode('.',$amount); //Comment this if you want amount value to be 1,00,000.00 
echo $amount[0]; //Comment this if you want amount value to be 1,00,000.00 

OUTPUT:

1,00,000 

編輯:

但是當我使用減號( - )與10000(五位數數字)它 返回輸出0,10,000

它應該是-10,000你有什麼想法..

上面的代碼給你-10,000如果設置$amount = '-10000';

+0

你能告訴如何在小數點後面得到兩位數字嗎? – zegulas

+0

不幸的是,這將在Windows平臺上失敗......'money_format()'將返回'undefined'。 **編輯:**我注意到OP已經在使用這個功能,所以對他來說這不是一個問題,但值得一提的是在這篇文章的未來訪問者的回答中 – Fr0zenFyr