Bonsoir,
j'ai un probleme lorsque j'utilise la fonction int_of_string, elle ne fonctionne pas pour de grands entiers:
par exemple int_of_string 1 123 456 789 me donne une exception.
Comment résoudre ce problème ?
je vous remercie d'avance
Rahela.
Bonsoir,
j'ai un probleme lorsque j'utilise la fonction int_of_string, elle ne fonctionne pas pour de grands entiers:
par exemple int_of_string 1 123 456 789 me donne une exception.
Comment résoudre ce problème ?
je vous remercie d'avance
Rahela.
En effet, le type int est limité en taille (il fait normalement 31 ou 63 bits). Le plus grand int utilisable est max_int.
Pour utiliser des entiers de toute taille, tu peux utiliser le module Big_int (tu trouveras facilement de l'aide pour l'utiliser).
Et juste pour en être sûr, tu ne sépares pas tes groupes de trois chiffres par un espace ?
-- Yankel Scialom
Ca donnerait une erreur de type pas une exception.Et juste pour en être sûr, tu ne sépares pas tes groupes de trois chiffres par un espace ?
En premier lieu, utilisez un moteur de recherche.
En second lieu, postez sur le forum adéquat !
Oui, mais je me méfie des mots utilisés pour décrire le problème. Et caml ne vérifie pas à la compilation la « représentabilité » des constantes ?
-- Yankel Scialom
Bonjour,
Je pense qu'il voulait dire "123 456" au lieu de "123456" (avec les guillemets, donc). L'appel de la fonction int_of_string avec la première chaîne déclenche bien la levée d'une exception de type Failure.Ca donnerait une erreur de type pas une exception.
Pour mémoire, OCaml propose de séparer les milliers à l'aide d'un underscore, dans le code et/ou les chaînes lues par les fonctions de type int_of_string. Par exemple :
sont tous les deux valides !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 let n = int_of_string "123_456" let m = string_of_int 123_456
Cordialement,
Cacophrène
Blog OCaml de pied en cap
Tuto Implémentation d'un lexique avec OCaml
Projets OCamlBoggle MazeML OCamlTeX
Ha merci beaucoup, j'ignorais le coup de l'underscore.
-- Yankel Scialom
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager