2012-07-29 77 views
2

我正在使用PHP驗證十進制值。該函數可以很好地從字母中確定小數/整數,但我的目標是將十進制/整數值格式化爲適當的貨幣值,例如$0.00PHP驗證十進制數並轉換爲美元貨幣格式

如何使用美元符號將輸入值格式化爲貨幣格式,例如$0.00

EXAMPLE

<? 
if (isset($_POST['price'])){ 
    $price = $_POST['price']; 
    $priceString = empty($price['price'])?null:trim($price['price']); 
      if(!empty($priceString)) { 
     if (preg_match('/^[+\-]?\d+(\.\d+)?$/', $price)){ 
      echo ('<div id="price_input"><span id="resultval">'.$price.'</span></div>'); 
       } 
      else { 
      echo ('<div id="price_input"><span id="resultval">Please input a valid decimal number.</span></div>'); 
        } 
    } 
    else { 
     echo ''; 
     }    
} 
?> 
+0

你們是不是要驗證爲貨幣或只是d是玩嗎? – 2012-07-29 06:08:27

+0

@DarkXphenomenon我試圖只顯示它 – CodingWonders90 2012-07-29 06:08:57

+0

@顏的解決方案適合你。你的問題的標題有點誤導。 – 2012-07-29 06:09:48

回答

7

使用money_format功能:

money_format('$%i', 5.2); 

輸出:$ 5.2

編輯:

if (preg_match('/^[+\-]?\d+(\.\d+)?$/', $price)){ 
    echo ('<div id="price_input"><span id="resultval">' 
      .money_format('$%i', $price); 
      .'</span></div>'); 
} 
+0

+1謝謝,有一件事:是否有足夠的空間來放置像'$ 5.20'這樣的完整貨幣值? – CodingWonders90 2012-07-29 06:17:51

+0

如果你做'money_format('$%i','5.20');',你應該得到'$ 5.20'。 – 2012-07-29 06:20:49

+0

你是對的!沒關係,我最後的評論,謝謝嚴。 – CodingWonders90 2012-07-29 06:21:13

相關問題