Fonctions numériques
Les fonctions numériques vous aident à calculer des pourcentages, formater des montants, et manipuler des nombres de diverses façons.
Calculs
valeur.percent(pourcentage)
Calcule un pourcentage d'une valeur. Le pourcentage peut être spécifié avec ou sans le symbole %.
// Calculer 20% de 500
500.percent(20) // 100
500.percent(20%) // 100 (même résultat)
// Calculer la TVA (20.9%)
produit.prixHT.percent(20.9%)
// Calculer une remise de 15%
let remise = commande.total.percent(15);
commande.total - remiseÉquivalent : 100.percent(20) est identique à 100 * 20 / 100 ou 100 * 0.20.
nombre.negate()
Retourne l'opposé d'un nombre (multiplie par -1).
5.negate() // -5
-10.negate() // 10
compte.solde.negate() // Inverse le signe du soldenombre.negateIf(condition)
Retourne l'opposé du nombre uniquement si la condition est vraie. Sinon, retourne le nombre tel quel.
// Rendre négatif si c'est un débit
100.negateIf(transaction.type === "débit") // -100 si débit, 100 sinon
// Rendre négatif si montant positif et vice versa
facture.total.negateIf(facture.payee === true)
// Exemple concret
10.negateIf(5 > 3) // -10 (car 5 > 3 est vrai)
10.negateIf(5 < 3) // 10 (car 5 < 3 est faux)Formatage
nombre.toFixed(nombreDecimales)
Formate un nombre avec un nombre spécifique de décimales. Retourne une chaîne de caractères.
123.456.toFixed(2) // "123.46"
100.toFixed(2) // "100.00"
3.14159.toFixed(4) // "3.1416"
produit.prix.toFixed(2) // Prix avec 2 décimalesBon à savoir : Cette fonction arrondit le nombre si nécessaire. 123.456 arrondi à 2 décimales donne 123.46.
nombre.padZeros(longueur)
Ajoute des zéros à gauche d'un nombre pour atteindre la longueur souhaitée. Idéal pour les numéros de référence.
7.padZeros(3) // "007"
42.padZeros(5) // "00042"
123.padZeros(3) // "123" (déjà assez long)
2602.padZeros(3) // "2602" (plus long que demandé)
// Générer un numéro de facture
"FAC-".concat(facture.numero.padZeros(5)) // "FAC-00042"Utile pour : Numéros de facture, codes produit, références client, numéros de commande, etc.
Conversion
texte.toNumber()
Convertit du texte en nombre entier. Utile quand vous devez extraire un nombre d'une chaîne de caractères.
"42".toNumber() // 42
"007".toNumber() // 7 (les zéros initiaux sont ignorés)
"123".toNumber() // 123
// Extraire un numéro d'un code
let code = "MIEL042";
let partie = code.slice(4, 7); // "042"
partie.toNumber() // 42Attention : Cette fonction attend une chaîne contenant uniquement des chiffres. Si le texte contient des lettres ou des symboles, le résultat peut être imprévisible.
valeur.count()
Retourne la longueur d'une chaîne ou d'un tableau. Pour un nombre Decimal, retourne le nombre lui-même.
"Bonjour".count() // 7 (caractères)
[1, 2, 3, 4, 5].count() // 5 (éléments)
commande.produits.count() // Nombre de produits
// Vérifier la longueur d'un champ
client.telephone.count() === 10
? "Numéro valide"
: "Numéro invalide"Exemples pratiques
Formater un prix pour affichage
let prixTTC = produit.prixHT * 1.20;
prixTTC.toFixed(2).concat(" €")
// Résultat: "149.99 €"Générer un numéro de facture incrémental
let annee = today().year();
let mois = (today().month() + 1).padZeros(2);
let numero = facture.numero.padZeros(4);
"FAC-".concat(annee, "-", mois, "-", numero)
// Résultat: "FAC-2026-01-0042"Calculer une remise progressive
let total = commande.total;
let tauxRemise =
total >= 1000 ? 15
: total >= 500 ? 10
: total >= 100 ? 5
: 0;
let montantRemise = total.percent(tauxRemise);
let totalFinal = total - montantRemise;
"Total: ".concat(total.toFixed(2), " € - ",
"Remise ", tauxRemise, "% = ",
montantRemise.toFixed(2), " € - ",
"Net: ", totalFinal.toFixed(2), " €"
)Extraire et incrémenter un numéro de code
// Codes existants: ["PRJ001", "PRJ002", "PRJ003"]
let codes = projet.codesExistants;
let numeros = codes.map(code => code.slice(3, 6).toNumber());
let prochainNumero = max(numeros) + 1;
"PRJ".concat(prochainNumero.padZeros(3))
// Résultat: "PRJ004"Écriture comptable (débit/crédit)
let montant = ecriture.montant;
let estDebit = ecriture.type === "débit";
estDebit
? "- ".concat(facture.total.toFixed(2), " €")
: "+ ".concat(facture.total.toFixed(2), " €")
// Ou avec negateIf pour le calcul
ecriture.montant.negateIf(ecriture.type === "débit")Prochaine étape
Découvrez maintenant les fonctions de manipulation de texte pour formater et transformer vos chaînes de caractères.