all,我正在制作一个只接受小数点后 1 位输入数字的购物车。以下是我从库中获得的代码段(经过一些修改):
$items['qty'] = trim(preg_replace('/([^0-9'.])/i', '', $items['qty']));
这将接受任何数字。 但我想让它只有 1 位小数。 如何修改代码?
谢谢
这
可以通过舍入函数来完成
echo round(153.751, 1); // 153.8
这将有助于使用 PHP 对数字进行四舍五入
您可以删除第一个小数位之后的小数位:
$items['qty'] = trim(preg_replace('/[^0-9'.]+|(?<='.[0-9])[0-9+]+/', '', $items['qty']));
看到它
您可以使用类似 ^(''d+.{0,1}''d*)$
但是PHP有一个概念,过滤器,它为你做了很多验证,http://php.net/manual/en/filter.filters.validate.php
如果我很好地理解这个问题,您可以使用number_format
$items['qty'] = number_format(trim(preg_replace('/([^0-9'.])/i', '', $items['qty'])),1,".","");
希望对您有所帮助。
添加一行:
$items['qty'] = sprintf('%.1f', $items['qty'])