0

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

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

这将接受任何数字。但我只想将其设为小数点后 1 位。如何修改代码?

谢谢

4

5 回答 5

1

这可以通过圆形功能来完成

echo round(153.751, 1);  // 153.8

这将有助于使用 PHP 舍入数字

于 2012-05-11T09:47:49.437 回答
0

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

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

看见

于 2012-05-11T09:44:22.727 回答
0

添加一行:

$items['qty'] = sprintf('%.1f', $items['qty'])
于 2012-05-11T09:45:48.120 回答
0

您可以使用像 ^(\d+.{0,1}\d*)$ 这样的正则表达式

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

于 2012-05-11T09:41:26.183 回答
0

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

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

希望能帮助到你。

于 2012-05-11T09:42:48.090 回答