C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のConvert.ToDecimal(String, IFormatProvider)メソッドの使い方を解説

C#のConvert.ToDecimal()メソッドは、指定された文字列形式の数値を、カルチャ固有の書式情報に基づいて等価なdecimal型(10進数)の値に変換します。国際化対応アプリケーションで、カルチャごとに異なる数値表現を正しく処理したい場合に役立ちます。

構文

このメソッドの構文は以下のとおりです。

public static decimal ToDecimal (string val, IFormatProvider provider);

パラメータ「val」は変換対象の数値が格納された文字列です。「provider」は、カルチャ固有の書式情報を提供するオブジェクトで、CultureInfoやNumberFormatInfoなどを指定できます。

使用例

それでは、Convert.ToDecimal()メソッドを使用した具体的なコード例を見てみましょう。

using System;
using System.Globalization;
public class Demo {
    public static void Main() {
        CultureInfo cultures = new CultureInfo("en-US");
        String val = "8787";
        Console.WriteLine("Converted Decimal value...");
        decimal res = Convert.ToDecimal(val, cultures);
        Console.Write("{0}", res);
    }
}

出力結果

このプログラムを実行すると、次のような出力が得られます。

Converted Decimal value...
8787

補足ポイント

カルチャによって小数点記号や桁区切り記号の表現が異なるため、ユーザーの地域設定に依存する入力を扱う場合は、適切なIFormatProviderを明示的に指定することが重要です。また、引数valがnullの場合は0が返され、数値として認識できない形式の文字列が渡された場合はFormatExceptionがスローされる点にも注意しましょう。

  1. C#のConvert.ToUInt16メソッドで文字列を16ビット符号なし整数に変換する方法

    C#では、Convert.ToUInt16メソッドを使用することで、指定した値を16ビット符号なし整数(ushort型)に変換することができます。 まず、変換対象となる文字列を用意します。 string str = 1129; この文字列を、Convert.ToUInt16メソッドを使って16ビット符号なし整数へ変換してみましょう。 ushort res; res = Convert.ToUInt16(str); 以下に、完全なサンプルプログラムを示します。 サンプルコード using System; public class Demo { public static void Ma

  2. Pythonで文字列をタプルに変換する方法

    Pythonで文字列をタプルに変換したい場合、「map」関数、「tuple」関数、「int」関数、そして「split」メソッドを組み合わせることで簡単に実現できます。map関数は、リストやタプルといったイテラブル(反復可能オブジェクト)の各要素に対して、指定した関数や処理を適用し、その結果を返す関数です。int関数は、与えられたデータを整数型に変換します(変換が可能な場合に限ります)。splitメソッドは、指定した区切り文字(指定しない場合はデフォルトの区切り文字)に基づいて、文字列を複数の部分に分割します。tuple関数は、与えられたデータをタプル型に変換します。以下に具体的な例を示します。