2012-07-29 99 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