-
Notifications
You must be signed in to change notification settings - Fork 0
MathTool
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. |
- 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;
}- 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.";
}- 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)- 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.