Pages: 1
- Sujet précédent - [MI9] conversion d'une chaine de caractère vers un flottant - Sujet suivant
#1 Tue 25 May 2010 11:13
[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
#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
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
#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
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
Pages: 1
- Sujet précédent - [MI9] conversion d'une chaine de caractère vers un flottant - Sujet suivant