Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Tue 25 May 2010 11:13

simon_g
Participant assidu
Lieu: Paris
Date d'inscription: 4 Oct 2006
Messages: 195
Site web

[MI9] conversion d'une chaine de caractère vers un flottant

Bonjour,

j'importe dans mapinfo un fichier txt dans lequel j'ai une colonne qui comporte des flottants. (du genre : 0,654734221).

Par défaut ils sont stockés dans un champ de type character.
Lorsque je fais la somme sur ma colonne, il ne me sort pas une valeur correcte. Ce que je peut comprendre.

Lorsque je convertis le champ en flottant ou décimal, je perds mes infos. IL retient 0.000000000

Si je créé une nouvelle colonne de type float et que je duplique le contenu depuis ma colonne de type char, il se passe la même chose. Alors comment procéder?

Je cherche l'équivalent de format$() ou formatNumber$() à l'envers.

Merci pour votre aide.

Dernière modification par simon_g (Tue 25 May 2010 11:14)

Hors ligne

 

#2 Tue 25 May 2010 11:16

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Salut,

As tu essayé Val()?
A+
Joël

Dernière modification par Spacejo (Tue 25 May 2010 11:16)

Hors ligne

 

#3 Tue 25 May 2010 11:25

simon_g
Participant assidu
Lieu: Paris
Date d'inscription: 4 Oct 2006
Messages: 195
Site web

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Salut Joël,
Merci pour la proposition mais c'est pas mieux!  ;-)

Hors ligne

 

#4 Tue 25 May 2010 11:32

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Alors il y a un problème:
J'ai déjà utilisé cette fonction et normalement celà se passe bien.
Comment l'utilises tu ?
Tiré du Reference Guide Mapbasic --> Cette fonction peut être utilisé dans la FMB.
--->

Val( ) function
Purpose
Returns the numeric value represented by a string. You can call this function from the MapBasic
window in MapInfo Professional.
Syntax
Val( string_expr )
string_expr is a string expression.

Dernière modification par Spacejo (Tue 25 May 2010 11:34)

Hors ligne

 

#5 Tue 25 May 2010 11:34

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Bonjour
DeFormatumber$("0,654734221") donne 0.654734221 ...

Hors ligne

 

#6 Tue 25 May 2010 11:36

simon_g
Participant assidu
Lieu: Paris
Date d'inscription: 4 Oct 2006
Messages: 195
Site web

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Oui, il y a un problème ;-)


TAble > Update column :

Je sélectionne ma table, ma colonne à mettre à jour .. etc puis dans le champ Value : Val(lacolonne_auformat_texte)

Hors ligne

 

#7 Tue 25 May 2010 11:39

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Et la fonction de Maurice: "DeFormatNumber$"?

Dernière modification par Spacejo (Tue 25 May 2010 11:41)

Hors ligne

 

#8 Tue 25 May 2010 11:40

simon_g
Participant assidu
Lieu: Paris
Date d'inscription: 4 Oct 2006
Messages: 195
Site web

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Maurice a écrit:

Bonjour
DeFormatumber$("0,654734221") donne 0.654734221 ...


ahhhh, merci Maurice. Ca fonctionne!

Hors ligne

 

#9 Tue 25 May 2010 11:47

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Bizarre!!!
As tu des séparateurs de milliers dans tes strings?
Normalement Val() devrait fonctionner

Hors ligne

 

#10 Tue 25 May 2010 11:55

michelbgy
Participant actif
Date d'inscription: 9 Feb 2010
Messages: 77

Re: [MI9] conversion d'une chaine de caractère vers un flottant

bonjour

pourquoi ne pas remplacer les virgules par des points dans le fichier texte avant de créer la table?

cela permets de contourner le problème du séparateur décimal, problème vicieux récurent puisque l'on a même
parfois des différences d'interprétation selon les version de Windows !

Hors ligne

 

#11 Tue 25 May 2010 11:57

simon_g
Participant assidu
Lieu: Paris
Date d'inscription: 4 Oct 2006
Messages: 195
Site web

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Spacejo > Non. Et je ne dépasse pas le millier

michelbgy > c'est aussi une idée mais si je peux m'épargner une manip intermédiaire, je préfère

Hors ligne

 

#12 Tue 25 May 2010 12:01

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Ok!!!
Je comprends mieux.
Merci Michel pour les précisions.

Hors ligne

 

#13 Tue 25 May 2010 12:13

simon_g
Participant assidu
Lieu: Paris
Date d'inscription: 4 Oct 2006
Messages: 195
Site web

Re: [MI9] conversion d'une chaine de caractère vers un flottant

Merci à tous!

Hors ligne

 

Pied de page des forums

Powered by FluxBB