次の方法で共有


Double.ToString メソッド (String, IFormatProvider)

指定した書式およびカルチャに固有の書式情報を使用して、このインスタンスの数値を、それと等価な文字列形式に変換します。

Overloads Public Overridable Function ToString( _
   ByVal format As String, _   ByVal provider As IFormatProvider _) As String
[C#]
public virtual string ToString(stringformat,IFormatProviderprovider);
[C++]
public: virtual String* ToString(String* format,IFormatProvider* provider);
[JScript]
public function ToString(
   format : String,provider : IFormatProvider) : String;

パラメータ

  • format
    書式指定。
  • provider
    カルチャ固有の書式情報を提供する IFormatProvider

戻り値

format および provider で指定された、このインスタンスの値の文字列形式。

解説

戻り値は PositiveInfinitySymbolNegativeInfinitySymbolNaNSymbol または次の書式の文字列のいずれかです。

[sign]integral-digits[.[fractional-digits]][e[sign]exponential-digits]

省略可能な項目は、角かっこ ([および]) で囲まれています。"digits" という語を含む項目は、0 から 9 までの一連の数字から構成されます。

  • sign
    負の記号または正の記号。
  • integral-digits
    数値の整数部分を指定する一連の数字。小数の桁が存在する場合は、整数の桁はなくてもかまいません。
  • '.'
    カルチャに固有の小数点記号。
  • fractional-digits
    数値の小数部分を指定する一連の数字。
  • 'e'
    指数表記を示す小文字の 'e'。
  • exponential-digits
    指数部を指定する一連の数字。

戻り値の例には、"100"、"-123,456,789"、"123.45e+6"、"500"、"3.1416"、"600"、"-0.123"、"-Infinity" などがあります。

format が null 参照 (Visual Basic では Nothing) または空の文字列の場合、このインスタンスの戻り値は、一般書式指定子 ("G") を使用して書式設定されます。

既定では、戻り値の有効桁数は 15 桁ですが、内部的には最大 17 桁が保持されています。このインスタンスの値が 15 桁よりも大きい場合、 ToString は、予期される数値ではなく PositiveInfinitySymbol または NegativeInfinitySymbol を返します。より多くの有効桁数が必要な場合は、 format を指定するときに書式指定として "G17" または "R" を使用します。"G17" 書式指定では、常に 17 桁の有効桁数が返されます。"R" 書式指定では、数値が 15 桁で表現できる場合は 15 桁の有効桁数が返され、最大有効桁数でなければ表現できない場合は 17 桁が返されます。

provider パラメータは、カルチャに固有の書式情報を提供する NumberFormatInfo オブジェクトを取得する IFormatProvider インスタンスです。 provider が null 参照 (Nothing) の場合、戻り値は現在のカルチャの NumberFormatInfo データを使用して書式設定されます。

使用例

ToString を使用して、パラメータとして StringIFormatProvider を受け取る方法については、次のコード例を参照してください。

 
Public Class Temperature
    Implements IFormattable

    Public Overloads Function ToString(ByVal format As String, ByVal provider As IFormatProvider) As String _
        Implements IFormattable.ToString

        If Not (format Is Nothing) Then
            If format.Equals("F") Then
                Return [String].Format("{0}'F", Me.Value.ToString())
            End If
            If format.Equals("C") Then
                Return [String].Format("{0}'C", Me.Celsius.ToString())
            End If
        End If

        Return m_value.ToString(format, provider)
    End Function

    ' The value holder
    Protected m_value As Double

    Public Property Value() As Double
        Get
            Return m_value
        End Get
        Set(ByVal Value As Double)
            m_value = Value
        End Set
    End Property

    Public Property Celsius() As Double
        Get
            Return (m_value - 32) / 1.8
        End Get
        Set(ByVal Value As Double)
            m_value = Value * 1.8 + 32
        End Set
    End Property
End Class

[C#] 
public class Temperature : IFormattable {
    /// <summary>
    /// IFormattable.ToString implementation.
    /// </summary>
    public string ToString(string format, IFormatProvider provider) {
        if( format != null ) {
            if( format.Equals("F") ) {
                return String.Format("{0}'F", this.Value.ToString());
            }
            if( format.Equals("C") ) {
                return String.Format("{0}'C", this.Celsius.ToString());
            }
        }

        return m_value.ToString(format, provider);
    }

    // The value holder
    protected double m_value;

    public double Value {
        get {
            return m_value;
        }
        set {
            m_value = value;
        }
    }

    public double Celsius {
        get {
            return (m_value-32.0)/1.8;
        }
        set {
            m_value = 1.8*value+32.0;
        }
    }
}

[C++] 
public __gc class Temperature : public IFormattable {
   /// <summary>
   /// IFormattable.ToString implementation.
   /// </summary>
public:
   String* ToString(String* format, IFormatProvider* provider) {
      if( format != 0 ) {
         if( format->Equals(S"F") ) {
            return String::Format(S"{0}'F", this->Value.ToString());
         }
         if( format->Equals(S"C") ) {
            return String::Format(S"{0}'C", this->Celsius.ToString());
         }
      }

      return m_value.ToString(format, provider);
   }

   // The value holder
protected:
   double m_value;

public:
   __property double get_Value() {
      return m_value;
   }
   __property void set_Value( double value ) {
      m_value = value;
   }


   __property double get_Celsius() {
      return (m_value-32.0)/1.8;
   }
   __property void set_Celsius( double value ) {
      m_value = 1.8*value+32.0;
   }

};

[JScript] 
public class Temperature implements IFormattable {
    /// <summary>
    /// IFormattable.ToString implementation.
    /// </summary>
    public function ToString(format : String, provider : IFormatProvider) : String {
        if( format != null ) {
            if( format.Equals("F") ) {
                return String.Format("{0}'F", this.Value.ToString());
            }
            if( format.Equals("C") ) {
                return String.Format("{0}'C", this.Celsius.ToString());
            }
        }

        return m_value.ToString(format, provider);
    }

    // The value holder
    protected var m_value : double;

    public function get Value() : double{
        return m_value;
    }
    
            public function set Value(value : double) {
        m_value = value;
    }

    public function get Celsius() : double {
        return (m_value-32.0)/1.8;
            }
            
            public function set Celsius(value : double) {
        m_value = 1.8*value+32.0;
    }
}

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Double 構造体 | Double メンバ | System 名前空間 | Double.ToString オーバーロードの一覧 | 書式設定の概要 | 数値書式指定文字列 | Parse | String