Maison > développement back-end > C++ > Comment conserver le nombre de décimales en C++

Comment conserver le nombre de décimales en C++

小老鼠
Libérer: 2024-03-25 16:18:33
original
1753 Les gens l'ont consulté

En C++, conserver plusieurs décimales implique généralement de formater la sortie. Ceci peut être réalisé en utilisant std::setprecision et std::fixed à partir de la bibliothèque de flux d'E/S. Vous pouvez utiliser std::cout et le formatage des flux d'E/S, std::stringstream, std::round ou std::floor/std::ceil pour l'arrondi, et utiliser la fonction printf de style C.

Comment conserver le nombre de décimales en C++

En C++, conserver plusieurs décimales implique généralement le formatage de la sortie, ce qui peut être réalisé en utilisant std::setprecision et std::fixed dans la bibliothèque de flux d'E/S. Voici quelques méthodes pour conserver les décimales :

1. Utilisez std::cout et le formatage des flux d'E/S

Vous pouvez utiliser std::cout avec std::fixed et std::setprecision pour définir le format de sortie.

cpp

#include <iostream>  
#include <iomanip> // 包含 setprecision 和 fixed  
  
int main() {  
    double value = 3.141592653589793;  
    std::cout << std::fixed << std::setprecision(2) << value << std::endl; // 输出: 3.14  
    return 0;  
}
Copier après la connexion

Dans cet exemple, std::fixed garantit que la notation à virgule fixe est utilisée, tandis que std::setprecision(2) définit le nombre de chiffres après la virgule à 2 .

2, Utilisez std::stringstream

Si vous devez stocker la chaîne formatée dans une variable au lieu de la sortir directement sur la console, vous pouvez utiliser std::stringstream.

cpp

#include <sstream>  
#include <iomanip>  
#include <string>  
  
int main() {  
    double value = 3.141592653589793;  
    std::stringstream ss;  
    ss << std::fixed << std::setprecision(2) << value;  
    std::string formatted_value = ss.str(); // formatted_value 现在包含 "3.14"  
    return 0;  
}
Copier après la connexion

3. Utilisez std::round ou std::floor/std::ceil pour arrondir

Si vous souhaitez arrondir à un nombre spécifié de décimales, vous Vous pouvez utiliser la fonction std::round. Veuillez noter que std::round accepte un nombre à virgule flottante multiplié par une puissance de 10 comme argument, vous devez donc calculer en conséquence en fonction du nombre de décimales requises.

cpp

#include <cmath> // 包含 round 函数  
#include <iostream>  
  
int main() {  
    double value = 3.141592653589793;  
    double rounded_value = std::round(value * 100.0) / 100.0; // 四舍五入到小数点后两位  
    std::cout << rounded_value << std::endl; // 输出: 3.14  
    return 0;  
}
Copier après la connexion

Si vous souhaitez arrondir à l'inférieur ou à un nombre spécifié de décimales, vous pouvez utiliser la fonction std::floor ou std::ceil, combinée avec la multiplication appropriée opération.

4. Utilisez une sortie formatée de style C

Bien que C++ recommande d'utiliser des flux d'E/S pour le formatage, vous pouvez également utiliser la fonction printf de style C.

cpp

#include <cstdio>  
  
int main() {  
    double value = 3.141592653589793;  
    printf("%.2f\n", value); // 输出: 3.14  
    return 0;  
}
Copier après la connexion

Dans printf, %.2f signifie afficher un nombre à virgule flottante avec deux décimales.

Ces méthodes peuvent être utilisées pour conserver le nombre de décimales en C++. La méthode que vous choisissez dépend de vos besoins spécifiques et du style de programmation que vous préférez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal