带有 1 个十进制数的 PHP 输入


php input with 1 decimal number

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'])