Probleme de conversion c++ builder et RoundTo

Signaler
Messages postés
9
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
17 février 2009
-
Messages postés
9
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
17 février 2009
-
Bonjour je réalise un programme dans lequel je convertis des secondes en minutes.
Mon code est le suivant :

int IndexOfH = mem.LastDelimiter("h");
AnsiString HEURES = mem.SubString(0,IndexOfH-1);
mem = mem.SubString(IndexOfH+1,mem.Length());
int IndexOfM = mem.LastDelimiter("m");
AnsiString MINUTES = mem.SubString(0,IndexOfM-1);
mem = mem.SubString(IndexOfM+1,mem.Length());
 int IndexOfS = mem.LastDelimiter(",");


if(!IndexOfS == 0)
{
     AnsiString SECONDES = mem.SubString(0,IndexOfS-1);
      mem = mem.SubString(IndexOfS+1,mem.Length());
      float NewMINUTES = SECONDES.ToDouble() / 60;
      float MINUTES2 = MINUTES.ToDouble() + NewMINUTES;
      MINUTES = RoundTo(MINUTES2,-1);
}

mem = HEURES + "h" + MINUTES + "m";

Mon probleme est que lors de l'arrondit, si MINUTES donne un entier, l'affichage va donner par exemple :
0h9m

Je voudrais que le resultat soit :
0h9,0m

En effet ce projet ayant pour but le pilotage d'un telescope neccessite l'envoi de trame dans une carte snap.
Mais les occurences de la carte snap n'accepte pas la trame si celle ci ne contient un flottant pour les minutes.

Il faudrait donc que je puisse afficher un flottant pour les minutes pour chaques objets.
Exemple:
Si MINUTES n'est pas un float
Alors mem = HEURES + "h" + MINUTES + ",0m";

Ou alors il me faudrait une autre méthode pour arrondir que RoundTo qui permettent d'afficher ",0" si l'arrondi donne un entier

Merci

1 réponse

Messages postés
9
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
17 février 2009

Personne n'a de solutions ?