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)
Kannapat Udonpant
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#, l'optionméthode Math.Round (mathématique) facilite cette opération en vous permettant d'arrondir les valeurs à la valeur intégrale 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, si vous avez le nombre décimal 3.14159, l'arrondi à deux décimales donnera 3.14.
Pourquoi des chiffres ronds ?
simplicité : Les nombres arrondis sont souvent plus faciles à lire et à comprendre.
Precision : Dans certains cas, il est plus efficace d'opérer sur des valeurs arrondies plutôt que sur des valeurs exactes, en particulier dans des contextes tels que les calculs de devises.
Scénarios d'arrondi courants
Nearest Integer : Arrondir une valeur décimale au nombre entier le plus proche.
Nombre spécifié de décimales : Arrondir un nombre à un nombre spécifique de décimales, comme arrondir 15.678 à deux décimales serait 15.68.
Les bases de l'arrondi en C# ;
C# offre un système robuste d'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 intégrale 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}")
Dans l'exemple ci-dessus, *4.5 est équidistant de 4 et de 5. Puisque 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}")
La méthode arrondit la valeur originale 7.34567 à 7.35 puisque nous avons spécifié d'arrondir à deux décimales.
Modes d'arrondi au point médian
Lorsqu'il s'agit de valeurs médianes(celles qui sont équidistantes de deux valeurs potentiellement arrondies)c# offre un mode MidpointRounding pour déterminer comment ces valeurs sont arrondies.
Arrondi par défaut
Par défaut, Math.Round arrondit les valeurs du point médian 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
Spécifier un mode MidpointRounding (arrondi au point médian)
Pour mieux contrôler l'opération d'arrondi des valeurs du point médian, vous pouvez passer en paramètre un mode MidpointRounding spécifique :
Dim value As Double = 5.5
Dim rounded As Double = Math.Round(value, 0, MidpointRounding.AwayFromZero)
Console.WriteLine($"Original: {value}, Rounded: {rounded}")
Dans cet exemple, le mode MidpointRounding.AwayFromZero permet de s'assurer 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}")
Le nombre décimal 5.678 s'arrondit à 5.7 lorsqu'il est arrondi à une décimale.
Fonctions d'arrondi personnalisées
Parfois, vous pouvez avoir besoin d'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 à l'entier 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}")
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}")
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}")
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
Précision double : Le type double ne représente pas toujours exactement les nombres décimaux, ce qui entraîne des résultats d'arrondi inattendus. L'utilisation du type décimal permet d'atténuer ce problème.
Mode d'arrondi du point médian incorrect : Veillez à utiliser le mode MidpointRounding adapté à vos besoins 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. LesIron Suite peut être votre sauveur. 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 pourGénération de PDF à partir de HTMLles services d'information et d'éducation, les services d'édition et les services de 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(chaîne de caractères[] 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(htmlContenu);
// Enregistrer le fichier PDF
pdfDocument.SaveAs(Facture.pdf);
Console.WriteLine(Facture PDF générée avec succès avec des valeurs arrondies.);
}
}
IronXL
IronXL fournit des fonctionnalités pour travailler avec des fichiers Excel, permettant aux développeurs C# de lire, écrire et manipuler des feuilles de calcul Excel de manière transparente. 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 un système avancé de reconnaissance optique de caractères(OCR) pour C# qui permet de reconnaître et d'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 classer les codes-barres et les codes QR dans .NET. Dans les contextes où des données arrondies doivent être encodées dans des codes-barres(par exemple, la tarification des produits dans une application de vente au détail)ironBarcode peut s'avérer très utile.
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 telles que Math.Round, Math.Floor et Math.Ceiling, et savoir quand utiliser le type de données approprié(double ou décimal) vous permettra de traiter 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 leIron Suite arrive. 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 la plus intéressante : Vous pouvez essayer ces outils gratuitement avec unlicence d'essai pour voir si elles vous plaisent. Si vous décidez d'en acheter une, chaque licence coûte $749. Mais si vous souhaitez les acheter tous, vous pouvez obtenir l'ensemble pour seulement deux outils. C'est comme si vous receviez quatre outils mais que vous n'en payiez que deux! Consultez le site de l'Iron Suitepage de licence pour plus d'informations.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< 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