Skip to content
Gérits Aurélien edited this page Feb 13, 2026 · 3 revisions

Le composant MathTool regroupe les fonctions arithmétiques du framework. Il sécurise non seulement la validation des données, mais facilite aussi les calculs financiers grâce à ses outils d'arrondis et de conversion de devises.

Namespace : Magepattern\Component\Tool\MathTool

Méthode Paramètres Retour Description
isInt() string $str int|false Valide un entier et le retourne typé.
isFloat() string $str float|false Valide un flottant et le retourne typé.
isNumeric() string $str mixed|false Valide n'importe quel nombre.
getPercentage() $num, $total float Calcule un pourcentage avec précision.
formatNumber() $val, $prec, $type float Arrondi précis (comptable, supérieur ou inférieur).
convertCurrency() $amt, $from, $to float|false Convertit un montant entre deux devises.

Usage courant

  1. Validation de données de formulaire Les données reçues via $_POST ou $_GET sont toujours des chaînes. MathTool permet de les transformer en données calculables immédiatement.
use Magepattern\Component\Tool\MathTool;

$ageInput = "25";

if ($age = MathTool::isInt($ageInput)) {
    // $age est maintenant un véritable integer (25)
    $nextYear = $age + 1;
}
  1. Validation de prix (Float) La méthode isFloat est capable d'interpréter les formats numériques standards.
$price = "19.99";

if (MathTool::isFloat($price)) {
    echo "Le prix est valide.";
}

Usage : Finance et Précision

  1. Arrondis spécifiques En e-commerce, il est courant de devoir arrondir au centime supérieur (ceil) ou inférieur (floor) pour des questions de taxes ou de remises.
use Magepattern\Component\Tool\MathTool;

$price = 19.9544;

echo MathTool::formatNumber($price, 2, 'round'); // 19.95
echo MathTool::formatNumber($price, 2, 'ceil');  // 19.96 (Plafond)
echo MathTool::formatNumber($price, 2, 'floor'); // 19.95 (Plancher)
  1. Conversion de devises La méthode permet de basculer rapidement entre les monnaies supportées.
$priceEUR = 100.00;
$priceUSD = MathTool::convertCurrency($priceEUR, 'EUR', 'USD');

if ($priceUSD) {
    echo "Le prix est de " . $priceUSD . "$"; // 109.00$
}

Fiabilité des calculs L'utilisation de pow(10, $precision) dans la méthode formatNumber garantit que l'arrondi s'effectue correctement sur le nième chiffre après la virgule, évitant les comportements imprévisibles des fonctions ceil() et floor() natives sur les nombres décimaux.

Clone this wiki locally