php输入1个十进制数

时间:2012-05-11 09:39:06

标签: php regex numbers preg-replace decimal

全部 我正在制作一个只接受1位小数的输入数字的购物车。 以下是我从库中获得的一段代码(经过一些修改):

$items['qty'] = trim(preg_replace('/([^0-9\.])/i', '', $items['qty']));

这将接受任何号码。但我想把它作为只有1位小数。如何修改代码?

由于

5 个答案:

答案 0 :(得分:1)

这可以用圆函数

完成
echo round(153.751, 1);  // 153.8

这将有助于Rounding numbers with PHP

答案 1 :(得分:0)

您可以使用像^(\ d +。{0,1} \ d *)$

这样的正则表达式

但PHP有一个概念,过滤器,为你做了很多验证,http://php.net/manual/en/filter.filters.validate.php

答案 2 :(得分:0)

如果我理解这个问题,你可以使用number_format

$items['qty'] = number_format(trim(preg_replace('/([^0-9\.])/i', '', $items['qty'])),1,".","");

希望它有所帮助。

答案 3 :(得分:0)

您可以删除小数点后第一位的小数位:

$items['qty'] = trim(preg_replace('/[^0-9\.]+|(?<=\.[0-9])[0-9+]+/', '', $items['qty']));

See it

答案 4 :(得分:0)

添加一行:

$items['qty'] = sprintf('%.1f', $items['qty'])