Arrondissez les nombres et générez des PDFs avec IronPDF !
using IronPdf;
using System;
class Program
{
static void Main(string[] args)
{
// Sample data for invoice
decimal itemPrice = 49.995m; // Item price before rounding
decimal taxRate = 0.18m; // 18% tax rate
// Round price to 2 decimal places
decimal roundedPrice = Math.Round(itemPrice, 2);
// Calculate and round the tax amount
decimal taxAmount = Math.Round(roundedPrice * taxRate, 2);
// Calculate the total amount
decimal totalAmount = Math.Round(roundedPrice + taxAmount, 2);
// Create simple HTML content for the PDF
string htmlContent = $@"
<h1>Invoice</h1>
<p>Item Price: ${roundedPrice}</p>
<p>Tax (18%): ${taxAmount}</p>
<hr>
<h2>Total Amount: ${totalAmount}</h2>
";
// Generate PDF using IronPDF
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF file
pdfDocument.SaveAs("Invoice.pdf");
Console.WriteLine("PDF invoice generated successfully with rounded values.");
}
}
C# Round (Comment ça marche pour les développeurs)
Chaknith Bin
août 29, 2023
Partager:
L'arrondissement des nombres est un concept mathématique fondamental, souvent appliqué dans des scénarios du monde réel. En C#, la méthode Math.Round facilite cela en vous permettant d'arrondir des valeurs à la valeur entière la plus proche ou à un nombre spécifique de décimales. Ce tutoriel aborde les nuances de l'arrondi en C# et illustre la manière dont vous pouvez exploiter cette méthode puissante.
Introduction à l'arrondi
Arrondir un nombre consiste à l'ajuster à la valeur intégrale ou décimale la plus proche afin de le simplifier ou de le rendre conforme à une exigence particulière. Par exemple, lorsque vous avez le nombre décimal 3.14159, l'arrondir à deux décimales donnerait 3.14.
Pourquoi des chiffres ronds ?
Simplicity : Les nombres arrondis sont souvent plus faciles à lire et à comprendre.
Précision : Dans certains cas, il est plus efficace de travailler avec des valeurs arrondies plutôt qu'avec des valeurs exactes, surtout dans des contextes comme les calculs monétaires.
Scénarios d'arrondi courants
Nearest Integer: Arrondir une valeur décimale à son nombre entier le plus proche.
Nombre de décimales spécifié : Arrondir un nombre à un nombre spécifique de décimales, par exemple arrondir 15.678 à deux décimales serait 15.68.
Les bases de l'arrondi en C# ;
C# offre un système robuste pour l'arrondi grâce à la méthode Math.Round. Cette méthode peut accepter divers arguments et paramètres pour personnaliser l'opération d'arrondi.
Arrondir à la valeur intégrale la plus proche
La forme la plus simple de la méthode Math.Round arrondit une valeur double à la valeur entière la plus proche. Si le nombre donné est équidistant de deux entiers, il est arrondi au nombre pair le plus proche, souvent appelé "arrondi du banquier"
Dim originalValue As Double = 4.5
Dim roundedValue As Double = Math.Round(originalValue)
Console.WriteLine($"Original: {originalValue}, Rounded: {roundedValue}")
$vbLabelText $csharpLabel
Dans l'exemple ci-dessus, *4.5 est équidistant de 4 et 5. Étant donné que 4 est le nombre pair le plus proche, la méthode renvoie 4.
Arrondir à un nombre spécifique de décimales
Vous pouvez également arrondir une virgule flottante en double précision à un nombre spécifié de décimales à l'aide d'un argument supplémentaire :
double value = 7.34567;
double rounded = Math.Round(value, 2); // Rounds to two decimal places
Console.WriteLine($"Original: {value}, Rounded: {rounded}");
double value = 7.34567;
double rounded = Math.Round(value, 2); // Rounds to two decimal places
Console.WriteLine($"Original: {value}, Rounded: {rounded}");
Dim value As Double = 7.34567
Dim rounded As Double = Math.Round(value, 2) ' Rounds to two decimal places
Console.WriteLine($"Original: {value}, Rounded: {rounded}")
$vbLabelText $csharpLabel
La méthode arrondit la valeur originale 7.34567 à 7.35 car nous avons spécifié de l'arrondir à deux décimales.
Modes d'arrondi au point médian
Lorsqu'il s'agit de valeurs intermédiaires (celles qui sont équidistantes de deux valeurs potentiellement arrondies), C# propose un mode MidpointRounding pour déterminer comment ces valeurs sont arrondies.
Arrondi par défaut
Par défaut, Math.Round arrondit les valeurs médianes au nombre pair le plus proche.
double valueOne = 4.5; // Rounded to 4
double valueTwo = 5.5; // Rounded to 6
double valueOne = 4.5; // Rounded to 4
double valueTwo = 5.5; // Rounded to 6
Dim valueOne As Double = 4.5 ' Rounded to 4
Dim valueTwo As Double = 5.5 ' Rounded to 6
$vbLabelText $csharpLabel
Spécification d'un mode MidpointRounding
Pour fournir un contrôle accru sur l'opération d'arrondissement des valeurs médianes, vous pouvez passer un mode spécifique MidpointRounding en tant que paramètre :
Dim value As Double = 5.5
Dim rounded As Double = Math.Round(value, 0, MidpointRounding.AwayFromZero)
Console.WriteLine($"Original: {value}, Rounded: {rounded}")
$vbLabelText $csharpLabel
Dans cet exemple, le mode MidpointRounding.AwayFromZero garantit que le nombre est arrondi à 6.
Utilisation de Math.Round avec des valeurs décimales
Nous avons parlé de l'arrondi des valeurs doubles, mais C# prend également en charge l'arrondi des valeurs décimales. Les méthodes sont analogues, mais elles fonctionnent avec le type de données décimal. En voici un exemple
decimal decimalValue = 5.678m;
decimal roundedDecimal = Math.Round(decimalValue, 1); // Rounds to one decimal place
Console.WriteLine($"Original: {decimalValue}, Rounded: {roundedDecimal}");
decimal decimalValue = 5.678m;
decimal roundedDecimal = Math.Round(decimalValue, 1); // Rounds to one decimal place
Console.WriteLine($"Original: {decimalValue}, Rounded: {roundedDecimal}");
Dim decimalValue As Decimal = 5.678D
Dim roundedDecimal As Decimal = Math.Round(decimalValue, 1) ' Rounds to one decimal place
Console.WriteLine($"Original: {decimalValue}, Rounded: {roundedDecimal}")
$vbLabelText $csharpLabel
Le nombre décimal 5.678 s'arrondit à 5.7 lorsqu'il est arrondi à une décimale.
Fonctions d'arrondi personnalisées
Parfois, vous devez effectuer des opérations d'arrondi spécifiques qui ne sont pas couvertes par la méthode standard Math.Round. L'écriture de fonctions d'arrondi personnalisées vous donne un contrôle total sur le processus.
L'arrondi
Pour toujours arrondir au nombre entier supérieur le plus proche, vous pouvez utiliser la méthode Math.Ceiling :
Dim value As Double = 4.7
Dim roundedDown As Double = Math.Floor(value)
Console.WriteLine($"Original: {value}, Rounded Down: {roundedDown}")
$vbLabelText $csharpLabel
Le nombre décimal 4.7 est arrondi à 4.
Travailler avec des chaînes de caractères
Dans de nombreuses applications, vous pouvez être amené à traiter des valeurs numériques sous forme de chaînes de caractères. L'analyse de la chaîne en double ou en décimal, l'arrondi et la reconversion peuvent être effectués en C#.
Parsing et arrondi
Voici un exemple d'arrondi d'une chaîne de caractères contenant un nombre décimal :
Dim originalString As String = "4.5678"
Dim parsedValue As Double = Double.Parse(originalString)
Dim rounded As Double = Math.Round(parsedValue, 2) ' Rounds to two decimal places
Dim roundedString As String = rounded.ToString()
Console.WriteLine($"Original: {originalString}, Rounded: {roundedString}")
$vbLabelText $csharpLabel
Original : 4.5678, arrondi : 4.57
L'arrondi dans les applications financières
Lorsque l'on travaille avec des applications financières, la précision est essentielle. Les erreurs d'arrondi peuvent entraîner des problèmes importants. Dans ce cas, le type décimal est préféré en raison de sa plus grande précision par rapport au type double.
Exemple d'arrondi de la monnaie
L'exemple suivant illustre l'arrondi d'une valeur décimale représentant une devise :
Dim originalValue As Decimal = 1234.5678D
Dim roundedValue As Decimal = Math.Round(originalValue, 2, MidpointRounding.AwayFromZero)
Console.WriteLine($"Original: {originalValue:C}, Rounded: {roundedValue:C}")
$vbLabelText $csharpLabel
Le code ci-dessus arrondit la valeur à deux décimales, conformément à la plupart des normes monétaires.
Débogage et dépannage des erreurs d'arrondi
Il peut arriver que les opérations d'arrondi ne donnent pas les résultats escomptés. Ces écarts peuvent être dus à des problèmes tels que la précision de la virgule flottante avec des valeurs doubles.
Les pièges les plus fréquents
Double Precision : Le type double peut ne pas toujours représenter les nombres décimaux de manière exacte, entraînant des résultats d'arrondis inattendus. L'utilisation du type décimal permet d'atténuer ce problème.
Mode de MidpointRounding incorrect : Assurez-vous d'utiliser le mode MidpointRounding correct pour vos exigences spécifiques. Une mauvaise utilisation de ces modes peut entraîner des erreurs d'arrondi.
Comment déboguer
Utilisez des outils tels que l'enregistrement et les points d'arrêt pour tracer la valeur avant et après l'arrondi. L'inspection de la valeur originale et des paramètres transmis à la méthode d'arrondi permet généralement de détecter les incohérences.
Iron Suite
Après avoir maîtrisé les bases de l'arrondi en C#, vous vous demandez peut-être comment faire passer vos applications au niveau supérieur, notamment lorsqu'elles traitent des formats de données complexes. La Iron Suite peut être votre sauveur ici. Cette suite comprend des outils puissants comme IronPDF, IronXL, IronOCR et IronBarcode. Voyons plus en détail comment ces outils peuvent s'intégrer à vos opérations d'arrondi et enrichir vos applications.
IronPDF
IronPDF est une bibliothèque robuste en C# conçue pour la génération de PDF à partir de HTML, l'édition et la gestion. Imaginez un scénario dans lequel vous devez générer un rapport au format PDF après avoir effectué des opérations d'arrondi. IronPDF peut convertir sans effort votre code C# en PDF de haute qualité.
en utilisant IronPDF ;
en utilisant System ;
classe Programme
{
static void Main(string[] args)
{
// Données d'exemple pour facture
décimal itemPrice = 49.995m; // Prix de l'article avant arrondissement
<p>Prix de l'article : ${roundedPrice}</p>
<p>Taxe (18 %) : ${taxAmount}</p>
<hr>
<h2>Montant total : ${totalAmount}</h2>
";
// Générer un PDF en utilisant IronPDF
var renderer = new ChromePdfRenderer();
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Enregistrer le fichier PDF
pdfDocument.EnregistrerSous("Invoice.pdf");
Console.WriteLine("Facture PDF générée avec succès avec des valeurs arrondies.");
}
}
IronXL
IronXL offre des fonctionnalités pour travailler avec les fichiers Excel, permettant aux développeurs C# de lire, écrire et manipuler des feuilles de calcul Excel de manière fluide. Avec IronXL, vous pouvez récupérer des données décimales ou doubles à partir de feuilles Excel, effectuer des opérations d'arrondi en C#.
IronOCR
IronOCR est une bibliothèque avancée de reconnaissance optique de caractères (OCR) pour C# qui peut reconnaître et extraire du texte à partir d'images et de PDF. Supposons que vous ayez numérisé des documents ou des images contenant des données numériques. Avec IronOCR, vous pouvez extraire ces données, les traiter ou les arrondir en C#.
IronBarcode
IronBarcode est un outil puissant pour générer, lire et classifier les codes-barres et les codes QR dans .NET. Dans les contextes où des données arrondies doivent être encodées en codes-barres (par exemple, le prix des produits dans une application de vente au détail), IronBarcode peut être inestimable.
Conclusion
L'arrondi en C# est un sujet aux multiples facettes qui trouve des applications dans divers domaines. Comprendre les méthodes intégrées comme Math.Round, Math.Floor et Math.Ceiling, et savoir quand utiliser le type de données approprié (double ou decimal) vous permettra de gérer efficacement les données numériques.
L'utilisation de l'arrondi en C# permet de travailler plus facilement avec les nombres. Mais qu'en est-il si vous voulez en faire encore plus avec ces chiffres ? C'est là que la Iron Suite entre en jeu. Il s'agit d'un ensemble d'outils qui peuvent vous aider à travailler avec des PDF, des fichiers Excel, du texte dans des images et des codes-barres.
Voici la partie excitante : Vous pouvez essayer ces outils gratuitement avec une licence d'essai pour voir si vous les aimez. Si vous décidez d'en acheter un, chacun coûte $749. Mais si vous souhaitez les acheter tous, vous pouvez obtenir l'ensemble pour seulement deux outils. C'est comme obtenir quatre outils mais ne payer que pour deux ! Consultez la page des licences de l'Iron Suite pour plus d'informations.
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT C# Dictionnaire Trygetvalue (Comment ça marche pour les développeurs)
SUIVANT > Opérateurs logiques C# (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier