La conversion d'une précision double, d'une chaîne
J'ai un grand nombre en c++ stocké comme un précis de la double valeur (en supposant que l'entrée de " n " 75): 2.4891 e+109
Est-il possible de convertir cette chaîne ou un tableau de chaque chiffre?
Voici mon code, même si ce n'est pas tout à fait pertinente à la question:
int main(){
double n = 0;
cout << "Giz a number: ";
cin >> n;
double val = 1;
for(double i = 1; i <= n; i++){
val = val * i;
}
//Convert val to string/array here?
}
Rien d'utile. Mauvaise langue.
OriginalL'auteur Marobri | 2012-06-07
Vous devez vous connecter pour publier un commentaire.
Vous pourriez également être intéressé par le
scientific
indicateur de format.C++11 a aussi quelques fonctions intéressantes
std::to_string
qui vous voudrez peut-être vérifier!J'aime l'indice de C++11. Cependant je n'aime pas que
std::to_string
n'offre pas la flexibilité (de précision, etc)OriginalL'auteur dirkgently
Quel est le problème avec le standard?
En outre, C++11 permet:
Si vous avez besoin de performances, vous pourriez trouver que les allocations de mémoire impliqués ci-dessus sont trop chers, auquel cas, vous pouvez recourir à snprintf, le obsolète strstream, ou peut-être que l'utilisation directe de la num_put facette. Par exemple:
OriginalL'auteur bames53
Vous trouverez que le double de la valeur n'est pas aussi précis que vous le pensez. Il ne contient 53 bits de précision, ou d'environ 15 à 17 chiffres; après cela, il commence arrondissement de chaque résultat. Votre numéro exige beaucoup plus de précision que cela, si vous souhaitez une réponse exacte, 92 chiffres en fait ou 364 bits.
OriginalL'auteur Mark Ransom
comme dans http://www.cprogramming.com/tutorial/iomanip.html
val
à une chaîne de caractères ou un tableau?!OriginalL'auteur Ran Cohen