正则表达式验证 整数和浮点

我这找了一个,但是它不能验证小数点后3位或是4位
请高手指教:
/^(?:0|[1-9]\d{0,9})(?:\.(?:[1-9]|\d[1-9]))?$/
<团耐册?php
$num
=
3.14333;
if
(preg_match('~^\d+(\.\d{1,4})?$~'亩做,$num))
echo
'塌宏ok';
else
echo
'error';
?>
{1,4}
是小数点后面
1到4位
<掘孝?php
$num = 3.14333;
if (preg_match('~^\d+(\.\d{1,4})?$~',$num))
echo 'ok';
else
echo 'error';
?>
{1,4} 是小数点早散山后陆中面 1到4位
/^[0-9]+(\.[0-9]+)?$/