Tronquer les nombres flottants avec PHP

Quand un nombre à virgule doit être tronqué à un certain chiffre après la virgule flottante, il s'avère qu'il n'est pas facile à faire. Par exemple, si la troncature doit être fait pour le deuxième chiffre après le point, les chiffres devraient être
45.8976 => 45.89, 0.0185 => 0.01
( deuxième chiffre après le point n'est pas arrondi selon le troisième chiffre après la virgule ).
Des fonctions comme la tour (la), number_format(), sprintf() de l'arrondi du nombre et de l'imprimer
45.8976 => 45.90, 0.0185 => 0.02

J'ai rencontré deux solutions et je me demande si ils sont assez bon et lequel est le mieux pour être utilisé

 1. function truncNumber( $number, $prec = 2 )
{
      return bccomp( $number, 0, 10 ) == 0 ? $number : round( $number - pow( 0.1, bcadd(   $prec, 1 ) ) * 5, $prec );
}

 2. function truncNumber($number, $prec = 2 )
{
  return sprintf( "%.".$prec."f", floor( $number*pow( 10, $prec ) )/pow( 10, $prec ) );
}

source d'informationauteur Dessislava Mitova | 2011-01-12