使用正则表达式

$num = '123.95555555555';
$pat = '/(\d+\.\d{5})\d*/';
echo preg_replace($pat,"\${1}",$num);

听说正则效率低,我来个不用正则的方法,直接上代码 暂未测试

// 来两个测试数
$a = 0.9555;
$b = 0.9554;

//保留3位小数
$n = 3; 

// 开始干活
$result = intval($a * pow(10, $n))/ pow(10, $n);

// 输出0.955
var_dump($result);