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

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

C#のConvert.ToDouble()メソッドは、数値を表す文字列を、それと等価な倍精度浮動小数点数(double)に変換するためのメソッドです。この記事で紹介するオーバーロードでは、IFormatProviderを引数に渡すことで、カルチャ固有の書式情報(小数点記号や桁区切り記号など)を指定しながら変換を行うことができます。

構文

Convert.ToDouble(String, IFormatProvider)メソッドの構文は以下のとおりです。

public static double ToDouble (string val, IFormatProvider provider);

各パラメータの意味は次のとおりです。

  • val: 変換対象となる数値を含む文字列。
  • provider: カルチャ固有の書式情報を供給するオブジェクト(IFormatProviderを実装したクラス。通常はNumberFormatInfoなど)。

戻り値は、文字列valと等価な倍精度浮動小数点数(double型)です。

使用例

それでは、Convert.ToDouble()メソッドを使った具体的な実装例を見てみましょう。この例では、NumberFormatInfoを使って小数点記号と桁区切り記号をカスタマイズしています。

using System;
using System.Globalization;
public class Demo {
   public static void Main(){
      String val = "876876, 878";
      NumberFormatInfo formatProvider = new NumberFormatInfo();
      formatProvider.NumberDecimalSeparator = ", ";
      formatProvider.NumberGroupSeparator = ".";
      formatProvider.NumberGroupSizes = new int[] { 2 };
      Console.WriteLine("Converted Decimal value...");
      double res = Convert.ToDouble(val, formatProvider);
      Console.Write("{0}", res);
   }
}

このコードでは、まずNumberFormatInfoオブジェクトを作成し、小数点記号として「, 」、桁区切り記号として「.」を設定しています。さらに、NumberGroupSizesプロパティで桁区切りの桁数を2桁に指定しています。その後、Convert.ToDouble()メソッドに文字列と書式プロバイダを渡すことで、カスタム書式に従った変換が行われます。

出力結果

上記のコードを実行すると、次のような出力が得られます。

Converted Decimal value...
876876.878

このように、IFormatProviderを活用することで、カルチャや地域ごとに異なる数値の書き方(小数点や桁区切りの違い)に柔軟に対応した文字列からdoubleへの変換が可能になります。国際化対応のアプリケーションでユーザー入力の数値を解析する場合などに特に有用なテクニックです。

  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関数は、与えられたデータをタプル型に変換します。以下に具体的な例を示します。