.NET ヘルプ

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

更新済み 4月 29, 2024
共有:

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

このガイド全体を通じて、C#でdouble値をint桁に丸めるためのさまざまな戦略と関数を検討し、各メソッドの意味と適用例を開発者が理解するのをサポートします。 また、以下を探ります IronPDF、これは .NET 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
VB   C#

このソースコードでは、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
VB   C#

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

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

Math.Round や明示的な変換以外にも、C# にはさまざまなニーズに対応するための他の double 値の丸め方法が提供されています。 例えば、Math.Floor および Math.Ceiling は、それぞれ常に小さい整数または大きい整数への丸めオプションを提供します。 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
VB   C#

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

IronPDFの紹介

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

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

コード例

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

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
VB   C#

C# で double を int に丸める (開発者向けの説明): 図1 - Math.round と IronPDF を組み合わせて使用した丸められた数値を示す請求書 PDF の例

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

結論

C# 小数点以下の値を整数に丸める(開発者向け動作説明):図2 - IronPDF ライセンスページ

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

< 以前
C# ロギング(開発者向けの仕組み)
次へ >
C#での動作方法(開発者向け)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >