Passer de string à int (ou real)

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Passer de string à int (ou real)

Messagepar maurice » Mardi 17 Mai 2011, 14:07

Bonjour,

il est possible de passer du type int à string avec :

Code: Tout sélectionner
int n;
string s=format("%i", n);


Y-a-t-il un moyen faire le chemin inverse ?

Merci
Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: passer de string à int (ou real)

Messagepar Romain Janvier » Mardi 17 Mai 2011, 14:59

Apparemment ecast permet de la faire. Pas le temps de tester, mais int i=ecast(s); devrait le faire. Sinon tu as testé int i=(int)s ?
Romain Janvier
Kilo-utilisateur
 
Messages: 146
Inscription: Lundi 23 Août 2010, 13:57
Statut actuel: Actif et salarié | Enseignant

Re: passer de string à int (ou real)

Messagepar maurice » Mardi 17 Mai 2011, 15:14

Merci, ecast ne marche pas comme ça et je ne sais pas m'en servir. la doc dit :
Explicit casts are implemented similarly, with operator ecast.

mais rien de plus.
Par contre, le i=(int)s que ne n'avait pas trouvé dans la doc mais qui y est p 63, travaille :

Code: Tout sélectionner
$ asy
Welcome to Asymptote version 2.08 (to view the manual, type help)
> string s="123";
> int i=ecast(s);
-: 1.7: no matching variable 'ecast'
> int i =(int)s;
> write(i);
123


Merci, Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: Passer de string à int (ou real)

Messagepar GMaths » Mardi 17 Mai 2011, 18:02

maurice a écrit:il est possible de passer du type int à string avec :

Code: Tout sélectionner
int n;
string s=format("%i", n);


A noter aussi ces possibilités :

Code: Tout sélectionner
int a=5;

string s1=string(a);
string s2=(string) a;

write(s1);
write(s2);


Romain Janvier a écrit:Apparemment ecast permet de la faire. Pas le temps de tester, mais int i=ecast(s); devrait le faire.

Non, pas ainsi.

Maurice a écrit:Merci, ecast ne marche pas comme ça et je ne sais pas m'en servir.


  • Un exemple avec du transtypage implicite :
    Code: Tout sélectionner
    int operator cast(string a)
    {
      return length(a);
    }
    string b="abc";
    write(b);
    write(10+b);
  • Le même exemple en imposant que le transtypage soit explicite :
    Code: Tout sélectionner
    int operator ecast(string a)
    {
      return length(a);
    }
    string b="abc";
    write(b);
    write(10+(int)b);

Je pense que ces exemples devraient être parlants.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Passer de string à int (ou real)

Messagepar Romain Janvier » Mardi 17 Mai 2011, 19:18

Ha ok, j'avais vu ca dans ta liste de fonctions alors je me suis dis pourquoi pas. Sinon de facon générale, si la conversion semble faisable, ca vaut le coup de tenter un cast de base du genre "type1 v= (type2) w;"
Romain Janvier
Kilo-utilisateur
 
Messages: 146
Inscription: Lundi 23 Août 2010, 13:57
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités