2010-09-16 6 views

Répondre

3

toFloat() devrait fonctionner. Vérifiez que votre chaîne ne contient que le numéro. Si la chaîne contient quelque chose d'autre aussi, par exemple "144.2e-3 a", puis retourne la toFloat() 0. Notez que d'autres chiffres aussi dans la chaîne entraînera la conversion à l'échec, par exemple QString("144.2e-3 100").toFloat() retournera 0.

des espaces supplémentaires dans le chaîne de nombre n'a pas d'importance, mais d'autres caractères le font.

+0

J'utilisais QString :: toDouble. QString :: toFloat() fonctionne directement. Merci. – Sulla

0

Utilisez QString::toDouble.

Exemple:

bool ok; 
float f = static_cast< float>(QString("1234.56e-02").toDouble(&ok)); 
+0

J'utilisais QString :: toDouble. QString :: toFloat() fonctionne directement. Merci. – Sulla

1
value = 3.91e+01; 
double doubleValue; 
stringstream valuestream(value); 
valuestream >> doubleValue; 

En utilisant un train de chaînes, vous pouvez convertir un nombre exponentiel au type de données dont nous avons besoin.

Questions connexes