Bonjour,
J'ai une petite fonction qui donne le résultat d'un factoriel, vu que les chiffres augmentent très vite, on dépasse rapidement le safe_integer.
J'ai donc utilisé l'api BigInt() pour outrepasser cela.
Mon programme marche très bien sauf sur iOS qui ne supporte pas le BigInt(). J'ai donc utilisé une condition de ce genre pour proposer une fonction sans BigInt pour les iOS
Mon problème est que Safari bloque l'ensemble du programme qui contient d'autres fonctions sans rapport car il trouve une erreur sur la fonction factoriel_BigInt alors qu'elle n'est même pas appeler, notamment il n'aime pas du tout la ligne "return 1n", le 1n veut dire que c'est un nombre BigInt, pour faire des calculs avec nombres on doit ajouter "n" à la fin pour que ca marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if(!navigator.userAgent.match(/iPhone/i)) factoriel = factoriel_BigInt; function factoriel(n) { if (n == 1 || n == "" || n == 0) return 1; else return (n * factoriel(n - 1)); } function factoriel_BigInt(n) { n = BigInt(n); //Transformation en Big Int if (n == 1 || n == "" || n == 0) return 1n; // 1n = 1 en BigInt else return (n * factoriel(n - 1n)); }
Avez vous une idée pour contourner cela? j'aimerai bien que le programme reste fonctionnel sur Ios meme sans le BigInt.
Cdt
Partager