.NET ヘルプ

C# 丸め 処理 (開発者向けガイド)

C#でダブルを整数に丸めることは、プログラミングでよく見られる基本的な作業です。特に計算がダブル値を生成するが、さらなる操作に整数値が必要な場合に多く見られます。 このプロセスは、小数点以下を含む可能性のある double 値を最も近い整数に変換することです。 これは、指定された丸め規約に従ったさまざまな方法で実行できます。

このガイド全体を通じて、C#でdouble値をint桁に丸めるためのさまざまな戦略と関数を検討し、各メソッドの意味と適用例を開発者が理解するのをサポートします。 IronPDF .NET PDF Library の機能についても探ります。これは、C#でPDFドキュメントを作成するための強力なツールです。

ラウンドメソッドの理解

C#では、Math.Round メソッドが double 値を最も近い整数に丸めるための主要なツールです。 この関数は、倍精度浮動小数点値を最も近い整数値に丸め、指定された数の小数桁数と丸め戦略の指定を可能にするオーバーロードを通じて、丸めプロセスに対する高度な制御を提供します。 例えば、double値がちょうど2つの整数の真ん中にある場合、四捨五入の規則はその値が切り上げられるか切り捨てられるかを決定します。

以下はMath.Roundメソッドの基本的な例です。

public static void Main()
{
    double myDouble = 9.5;
    int myInt = (int)Math.Round(myDouble);
    Console.WriteLine("The rounded integer value is: " + myInt);
}
public static void Main()
{
    double myDouble = 9.5;
    int myInt = (int)Math.Round(myDouble);
    Console.WriteLine("The rounded integer value is: " + myInt);
}
Imports System

Public Shared Sub Main()
	Dim myDouble As Double = 9.5
	Dim myInt As Integer = CInt(Math.Truncate(Math.Round(myDouble)))
	Console.WriteLine("The rounded integer value is: " & myInt)
End Sub
$vbLabelText   $csharpLabel

このソースコードでは、Math.Round を使用して、double 値 9.5 を最も近い整数に丸めます。 そのメソッドは10を返します。四捨五入して最も近い数値にします。 これは、正の値がちょうど2つの整数値の中間にあるときに予想される結果です。

丸め込みと明示的な変換

C#でdouble値を整数値に変換するもう一つの一般的な方法は、明示的な変換によるものです。 明示的な変換は、doubleをintに直接キャストすることを含み、小数点以下の値を切り捨てます。 これは、最も近い整数に四捨五入するのではなく、最も近い小さい整数に切り捨てられることを意味します。 この方法は、最も近い整数値を考慮せずに小数部分だけを削除する必要がある場合に有用です。

以下の方法で明示的な変換が可能です:

public static void Main()
{
    double myDouble = 9.9;
    int myInt = (int)myDouble;
    Console.WriteLine("The integer value after explicit conversion is: " + myInt);
}
public static void Main()
{
    double myDouble = 9.9;
    int myInt = (int)myDouble;
    Console.WriteLine("The integer value after explicit conversion is: " + myInt);
}
Imports System

Public Shared Sub Main()
	Dim myDouble As Double = 9.9
	Dim myInt As Integer = CInt(Math.Truncate(myDouble))
	Console.WriteLine("The integer value after explicit conversion is: " & myInt)
End Sub
$vbLabelText   $csharpLabel

上記の例では、出力は9になります。なぜなら、明示的な変換は9.9から小数部分を単に切り捨てるため、小さい整数になります。 この方法は迅速ですが、特定の丸め規則に従った正確な丸めが必要な場合には適していないかもしれません。

特定の丸めニーズに対応する他の方法の使用

Math.Round や明示的な変換に加えて、C# は異なるニーズに応じたダブル値の丸め方法を他にも提供しています。 たとえば、Math.FloorMath.Ceiling は、それぞれ常に小さい整数または大きい整数に向かって double 値を丸めるオプションを提供します。 Math.Floor は特に、負の値でも常に切り下げを行うのに便利です。一方で、Math.Ceiling は切り上げを確保します。

これらのメソッドの例を見てみましょう:

public static void Main()
{
    double myDouble = 9.2;
    int floorInt = (int)Math.Floor(myDouble);
    int ceilingInt = (int)Math.Ceiling(myDouble);
    Console.WriteLine("Rounded down: " + floorInt);
    Console.WriteLine("Rounded up: " + ceilingInt);
}
public static void Main()
{
    double myDouble = 9.2;
    int floorInt = (int)Math.Floor(myDouble);
    int ceilingInt = (int)Math.Ceiling(myDouble);
    Console.WriteLine("Rounded down: " + floorInt);
    Console.WriteLine("Rounded up: " + ceilingInt);
}
Imports System

Public Shared Sub Main()
	Dim myDouble As Double = 9.2
	Dim floorInt As Integer = CInt(Math.Truncate(Math.Floor(myDouble)))
	Dim ceilingInt As Integer = CInt(Math.Truncate(Math.Ceiling(myDouble)))
	Console.WriteLine("Rounded down: " & floorInt)
	Console.WriteLine("Rounded up: " & ceilingInt)
End Sub
$vbLabelText   $csharpLabel

上記のコードでは、Math.Floor9.2から9を返し、小数部分を切り捨てて最も近い整数に丸めます。一方、Math.Ceiling10を返し、次の正の整数に向かって丸めます。 これらのメソッドは、丸め戦略が曖昧さなく、より高い整数値またはより低い整数値を優先しなければならない場合に不可欠です。

IronPDFの紹介

IronPDFの機能を探ることで、この.NETライブラリがC#開発者にHTMLから直接PDFファイルを作成および管理する方法を提供することがわかります。 それはChromeレンダリングエンジンを使用して、PDFがウェブブラウザでの表示と同じように見えるようにします。 これにより、ウェブベースのレポート作成に最適です。 IronPDFは、デジタル署名の追加、ドキュメントレイアウトの変更、およびカスタムヘッダー、フッター、ウォーターマークの挿入などの複雑な作業を処理することができます。 それは、開発者がHTML、CSS、JavaScript、および画像などの馴染みのあるWeb技術を使用してPDFドキュメントを作成または編集できるため、使いやすいです。

IronPDFの主な機能は、レイアウトとスタイルを維持しながら、HTMLをPDFに変換することです。 さまざまなWebコンテンツ(レポート、請求書、ドキュメントなど)からPDFを生成し、HTMLファイル、URL、またはHTML文字列をPDFファイルに変換することができます。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPDFとC#の四捨五入機能を統合するために、開発者はIronPDFのPDF生成機能とC#の数値演算を組み合わせることができます。 これは特に、数値データを明確かつ正確に提示する必要がある金融や報告アプリケーションにおいて役立ちます。 例えば、会計基準に準拠し、読みやすさを確保するために、数値を最も近い整数に丸めた請求書や財務概要を生成することができます。

コード例

以下は、数値データを丸めて含むPDFを作成するために、C#のMath.RoundメソッドとIronPDFを活用する例です。

using IronPdf;
using System;
public class PDFGenerationWithRounding
{
    public static void Main()
    {
        License.LicenseKey = "License-Key";
        // Initialize the HTML to PDF renderer
        var renderer = new ChromePdfRenderer();
        // Example data
        double transactionAmount = 123.456;
        int roundedAmount = (int)Math.Round(transactionAmount);
        // HTML content including the rounded amount
        string htmlContent = $@"
            <html>
            <head>
                <title>Transaction Summary</title>
            </head>
            <body>
                <h1>Transaction Details</h1>
                <p>Original Amount: ${transactionAmount}</p>
                <p>Rounded Amount: ${roundedAmount}</p>
            </body>
            </html>";
        // Convert the HTML to a PDF document
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("TransactionSummary.pdf");
        Console.WriteLine("The PDF document has been generated with rounded figures.");
    }
}
using IronPdf;
using System;
public class PDFGenerationWithRounding
{
    public static void Main()
    {
        License.LicenseKey = "License-Key";
        // Initialize the HTML to PDF renderer
        var renderer = new ChromePdfRenderer();
        // Example data
        double transactionAmount = 123.456;
        int roundedAmount = (int)Math.Round(transactionAmount);
        // HTML content including the rounded amount
        string htmlContent = $@"
            <html>
            <head>
                <title>Transaction Summary</title>
            </head>
            <body>
                <h1>Transaction Details</h1>
                <p>Original Amount: ${transactionAmount}</p>
                <p>Rounded Amount: ${roundedAmount}</p>
            </body>
            </html>";
        // Convert the HTML to a PDF document
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("TransactionSummary.pdf");
        Console.WriteLine("The PDF document has been generated with rounded figures.");
    }
}
Imports IronPdf
Imports System
Public Class PDFGenerationWithRounding
	Public Shared Sub Main()
		License.LicenseKey = "License-Key"
		' Initialize the HTML to PDF renderer
		Dim renderer = New ChromePdfRenderer()
		' Example data
		Dim transactionAmount As Double = 123.456
		Dim roundedAmount As Integer = CInt(Math.Truncate(Math.Round(transactionAmount)))
		' HTML content including the rounded amount
		Dim htmlContent As String = $"
            <html>
            <head>
                <title>Transaction Summary</title>
            </head>
            <body>
                <h1>Transaction Details</h1>
                <p>Original Amount: ${transactionAmount}</p>
                <p>Rounded Amount: ${roundedAmount}</p>
            </body>
            </html>"
		' Convert the HTML to a PDF document
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
		pdf.SaveAs("TransactionSummary.pdf")
		Console.WriteLine("The PDF document has been generated with rounded figures.")
	End Sub
End Class
$vbLabelText   $csharpLabel

C# doubleをintに丸める(開発者向けのしくみ):図1 - Math.roundをIronPDFと併用して丸めた数値を示す請求書PDFの例

この例では、IronPDFがシンプルなHTML文字列をPDFファイルにレンダリングし、トランザクション金額が最も近い整数に丸められた動的データを組み込んでいます。 このアプローチは非常に適応性が高く、開発者が特定のニーズに合わせた複雑なドキュメントを作成することを可能にし、プロセスの最前線に精度と使いやすさを保ちます。

結論

C# double を int に丸める(開発者向けの動作方法):図2 - IronPDF ライセンスページ

C#におけるdouble型のint型への丸めは、多目的なプロセスであり、double値の性質、丸めのコンテキスト、およびアプリケーション内で必要とされる精度によって影響されます。 最も近い整数への丸めにMath.Roundを使用する場合、直接切り捨てのための明示的な変換、または特定の丸め方向のためにMath.FloorMath.Ceilingのような他の方法を使用する場合でも、C#は倍精度浮動小数点値の丸めを効果的に処理する方法を提供しています。 IronPDFにはIronPDFの無料トライアルがあり、価格は$749からです。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
C# ロギング(開発者向けの仕組み)
次へ >
C#での動作方法(開発者向け)