stringstream conversion en int 5e+006 => 5 - C++ - Programmation
Marsh Posté le 17-12-2009 à 12:07:45
C'est ce qu'il semble, les flags de formatage de nombre ne semblant s'appliquer que sur les flottants.
Marsh Posté le 17-12-2009 à 14:13:04
ReplyMarsh Posté le 17-12-2009 à 22:32:56
thanks 
 
EDIT, pourtant : 
 
int var = 5e+006; //var = 500K 
int var = static_cast<int>(5e+006); //var = 500K
Marsh Posté le 21-12-2009 à 17:18:35
Si pour toi 5e6=500K, pourquoi ne pas arrondir à 5 tout court... 
 
  
 
Marsh Posté le 21-12-2009 à 17:28:54
| Taz a écrit : Mais 5e+006 c'est un double donc oui t'es obligé. | 
 
Pourquoi ce serait un double?
Marsh Posté le 21-12-2009 à 23:57:05
  
 
 
les EXp , e+ out e- font parti du syntax des floats (float, double, long double ...) 
j'ai utiliser ca quelqfois  mais pour n < 0 (pour ganger lespace du stockage )... 
 
 
Pour Glock 17Pro 
stringstream ? ( encore un autre stream ) 
 
tu ne peut pas sauter de ce type de string  au int  : jamais fait avant  
  
(si tu veut ajoute une method avec le stringstream , ou au global scope) 
 
Convert comme ca: 
string -> float ou double 
float double -> int        (int combien de bit !) 
 
 
Marsh Posté le 22-12-2009 à 00:39:35
  pardon!! ; la haut ; je veux dire 0 <= n <=1
 pardon!! ; la haut ; je veux dire 0 <= n <=1  
et non n < 0 .....
Marsh Posté le 22-12-2009 à 12:46:38
C'est dommage je trouve de ne pas pouvoir écrire un entier sous cette forme...
Marsh Posté le 22-12-2009 à 15:06:47
| ptitchep a écrit : C'est dommage je trouve de ne pas pouvoir écrire un entier sous cette forme... | 
 
Nan mais réfléchi 2s pourquoi ça n'est pas adapté ...
Marsh Posté le 22-12-2009 à 17:22:50
ben désolé mais même 5.2356e+006 est un entier... Dès fois, cela ferait du bien dans certains fichier de conf... Evidemment c'est source de problèmes avec genre 5.23e+1 mais avec une bonne gestion des erreurs ce n'est pas possible? Ou tout simplement en tronquant. 
Explique moi.
Marsh Posté le 22-12-2009 à 23:12:32
Nan mais réfléchi 2s pourquoi ça n'est pas adapté... 
 
  
  
Peut etre c'est adapter dans quelque version  
de lib ou autre language , (ou faite votre function) 
 
je vient de tester ca en VB (vbasic) ,  
TypeName (5e+8) , elle se auto-transforme , 
quand en l'ecrit , en 
TypeName (500000000#) , et # pour marquer le type double 
 
pour c++ , 90% la function qui va convertir vers int 
va stopper quand elle rencontre le 'e' apres le 5 (il n'est pas numeric) 
  
  
--> c'est comme ca , mais tu peut faire ta function
Marsh Posté le 23-12-2009 à 09:01:46
| ptitchep a écrit : ben désolé mais même 5.2356e+006 est un entier... Dès fois, cela ferait du bien dans certains fichier de conf... Evidemment c'est source de problèmes avec genre 5.23e+1 mais avec une bonne gestion des erreurs ce n'est pas possible? Ou tout simplement en tronquant. | 
 
 
que fais tu des trucs genres : 1e-x ou bien 1e+146 ? 
 
Marsh Posté le 23-12-2009 à 09:41:35
| ptitchep a écrit : mais avec une bonne gestion des erreurs ce n'est pas possible? | 
 
Marsh Posté le 17-12-2009 à 00:10:25
salut,
je souhaiterais convertir une string en int , la string à ce format 5e+006
quand je la passe à stringstream et que je la stock dans un int en sortie mon int vaut 5.
il faut utilise setf ?
quelle est la bonne façon de faire ?
merci.
---------------
.