PHP验证成本金额2小数位

时间:2017-01-10 18:47:22

标签: php validation

我的api要求所有与订阅费用相关的数据在提交给数据库之前都采用正确的格式,因为客户需要支付金额。以下规则适用。

  1. 必须是数字且没有货币符号。使用is_string($data['cost'])
  2. 进行验证
  3. 不能为负数。使用$data['cost'] < 0
  4. 进行验证
  5. 必须有两位小数,即使金额没有分数($ 100.00)。
  6. 验证要求#3的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

决定采取非常直接的方式。如果成本中存在小数,请检查右侧有多少个位置。否则提交到DB。

$amount = explode('.', $data['cost']);
if(isset($amount[1]) && strlen($amount[1]) > 2) {
   // response  
}

答案 1 :(得分:0)

使用number_format()优点是无论你得到什么(不够0或太多0),它都会以正确的格式保存

number_format("1000000",2) // 1,000,000.00

修改:要将其用于验证,

$num = $data['cost'];
$check = number_format($num,2);
if ($num == $check) return true;