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 Fri 22 September 2006 17:06

Florent
Participant actif
Lieu: Nantes
Date d'inscription: 5 Sep 2005
Messages: 86
Site web

[MapBasic] - Récupérer la valeur complète d'un flottant

Bonjour,

Mon problème est assez simple j'imagine mais là je bloque complètement.
Je cherche à retourner la valeur complète de données enregistrées au format flottant.

Ex : J'ai dans ma base la valeur 117,69812011719 hors si je fais un "fetch" dessus il me retourne 117,698

Règle du jeux : je ne peux pas changer cette colonne en virgule fixe.

Voici le bout de code que j'utilise ( c'est de l'OLE depuis VB) :

Code:

      For i = 1 To m_row_count_sel
        o_Wait.Value = i - 1
        Mi.Do ("Fetch Rec " & i & " from " & sSelName)
        'Dim iValue As Double
        'iValue = Round(Val(Mi.Eval(sSelName & "." & s_col_lib)), 11)        
        'MsgBox (cstr(iValue))
        m_row_lib(i - 1) = Val(Mi.Eval(sSelName & "." & s_col_lib))
      Next

J'ai essayé de formater depuis vb mais le problème est en amont :
Mi.Eval(sSelName & "." & s_col_lib) retourne la valeur arrondie.

Si quelqu'un à une idée.

Merci d'avance


Florent

Hors ligne

 

#2 Fri 22 September 2006 17:55

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

Re: [MapBasic] - Récupérer la valeur complète d'un flottant

Ben...c'est pas du MapBasic ça!! J'ai été trompé par la 'balise'!!
Dommage parce que sinon j'aurais su m'en sortir avec les fonction String, genre Format$, etc...
Mais là ?? Pourquoi ne pas multiplier par 10^12 pour ne rien perdre?? (je dis une bêtise??...)

Hors ligne

 

#3 Fri 22 September 2006 19:56

Damien BEAUSEIGNEUR
Participant assidu
Lieu: meyzieu
Date d'inscription: 5 Sep 2005
Messages: 425

Re: [MapBasic] - Récupérer la valeur complète d'un flottant

Florent

un petit coup de main,
Va voir dans les options Windows
Options régionales et linguistique, personalise et indique pour les nombres, une décimale de 9.
pour ta valeur 117,69812011719, il devrait te retourner 117,698120117
Pour plus de précision, il te reste la multiplication, et la division derrière, pour récupérer ton chiffre initial.
Mais as tu vraiment besoin d'une telle précision?

Cordialement

Hors ligne

 

Pied de page des forums

Powered by FluxBB