Double 構造体とは? わかりやすく解説

Double 構造体

倍精度浮動小数点数表します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Double
    Implements IComparable, IFormattable, IConvertible, IComparable(Of
 Double), _
    IEquatable(Of Double)
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public struct Double : IComparable, IFormattable, IConvertible,
 
    IComparable<double>, IEquatable<double>
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public value class Double : IComparable, IFormattable,
 IConvertible, 
    IComparable<double>, IEquatable<double>
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class Double extends ValueType
 implements IComparable, IFormattable, 
    IConvertible, IComparable<double>, IEquatable<double>
JScript では、構造体使用できますが、新規に宣言することはできません。
解説解説

Double 値型は、-1.79769313486232e308 から +1.79769313486232e308 までの倍精度 64 ビット数値、正の 0 または負の 0、PositiveInfinity、NegativeInfinity、および非数 (NaN) を表します

Double は、2 進の浮動小数点演算に関する IEC 60559:1989 (IEEE 754) 規格準拠してます。

Double は、この型の複数インスタンス比較したり、インスタンスの値を文字列形式変換したり、数値文字列形式をこの型のインスタンス変換するためのメソッド提供します書式指定コード値型文字列形式制御する方法については、「書式設定概要」、「標準数値書式指定文字列」、および「カスタム数値書式指定文字列」を参照してください

浮動小数点数使用

二項演算実行するときに、一方オペランドDouble である場合は、もう一方オペランド整数型または浮動小数点型 (Double または Single) であることが必要です。もう一方オペランドDoubleない場合は、二項演算実行する前に Double変換され、この演算少なくとも Double範囲および精度使用して実行されます。演算結果数値である場合結果の型は Doubleなります

浮動小数点演算子および代入演算子は、例外スローしません。その代わり例外状況での浮動小数点演算結果は、次に説明するように 0、無限大、または NaNなります

浮動小数点数10 進数概数を表すことができるだけであること、および、浮動小数点数有効桁数によって数値が表す 10 進数概数精度決定されることに注意してください既定では、Double 値に含まれる有効桁数15 ですが、内部的に最大 17 保持されています。浮動小数点数桁数から、複数結果生成されます。

インターフェイス実装

この型は、IComparable、IComparable、IFormattable、および IConvertible の各インターフェイス実装ます。この型の明示的な IConvertible インターフェイス メンバ実装代わりにConvert クラス使用します

使用例使用例

Double使用方法については、次のコード例参照してください

' Temperature class stores the value as Double
' and delegates most of the functionality 
' to the Double implementation.
Public Class Temperature
    Implements IComparable, IFormattable

    Public Overloads Function
 CompareTo(ByVal obj As Object)
 As Integer _
        Implements IComparable.CompareTo

        If TypeOf obj Is
 Temperature Then
            Dim temp As Temperature = CType(obj,
 Temperature)

            Return m_value.CompareTo(temp.m_value)
        End If

        Throw New ArgumentException("object
 is not a Temperature")
    End Function

    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

    ' Parses the temperature from a string in form
    ' [ws][sign]digits['F|'C][ws]
    Public Shared Function
 Parse(ByVal s As String,
 ByVal styles As NumberStyles, ByVal provider As IFormatProvider) As
 Temperature
        Dim temp As New
 Temperature()

        If s.TrimEnd(Nothing).EndsWith("'F")
 Then
            temp.Value = Double.Parse(s.Remove(s.LastIndexOf("'"c),
 2), styles, provider)
        Else
            If s.TrimEnd(Nothing).EndsWith("'C")
 Then
                temp.Celsius = Double.Parse(s.Remove(s.LastIndexOf("'"c),
 2), styles, provider)
            Else
                temp.Value = Double.Parse(s, styles, provider)
            End If
        End If
        Return temp
    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
/// <summary>
/// Temperature class stores the value as Double
/// and delegates most of the functionality 
/// to the Double implementation.
/// </summary>
public class Temperature : IComparable, IFormattable
 {
    /// <summary>
    /// IComparable.CompareTo implementation.
    /// </summary>
    public int CompareTo(object obj) {
        if(obj is Temperature) {
            Temperature temp = (Temperature) obj;

            return m_value.CompareTo(temp.m_value);
        }
        
        throw new ArgumentException("object is not a Temperature");
    
    }

    /// <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);
    }

    /// <summary>
    /// Parses the temperature from a string in form
    /// [ws][sign]digits['F|'C][ws]
    /// </summary>
    public static Temperature Parse(string
 s, NumberStyles styles, IFormatProvider provider) {
        Temperature temp = new Temperature();

        if( s.TrimEnd(null).EndsWith("'F")
 ) {
            temp.Value = Double.Parse( s.Remove(s.LastIndexOf('\''), 2), styles,
 provider);
        }
        else if( s.TrimEnd(null).EndsWith("'C")
 ) {
            temp.Celsius = Double.Parse( s.Remove(s.LastIndexOf('\''), 2), styles,
 provider);
        }
        else {
            temp.Value = Double.Parse(s, styles, provider);
        }

        return temp;
    }

    // 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;
        }
    }
}
/// <summary>
/// Temperature class stores the value as Double
/// and delegates most of the functionality 
/// to the Double implementation.
/// </summary>
public ref class Temperature: public
 IComparable, public IFormattable
{
   /// <summary>
   /// IComparable.CompareTo implementation.
   /// </summary>
public:
   virtual int CompareTo( Object^ obj )
   {
      if ( dynamic_cast<Temperature^>(obj) )
      {
         Temperature^ temp = (Temperature^)(obj);
         return m_value.CompareTo( temp->m_value );
      }

      throw gcnew ArgumentException( "object is not a Temperature" );
   }

   /// <summary>
   /// IFormattable.ToString implementation.
   /// </summary>
   virtual String^ ToString( String^ format, IFormatProvider^ provider )
   {
      if ( format != nullptr )
      {
         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 );
   }


   /// <summary>
   /// Parses the temperature from a string in form
   /// [ws][sign]digits['F|'C][ws]
   /// </summary>
   static Temperature^ Parse( String^ s, NumberStyles styles,
 IFormatProvider^ provider )
   {
      Temperature^ temp = gcnew Temperature;

      if ( s->TrimEnd( 0 )->EndsWith( "'F" ) )
      {
         temp->Value = Double::Parse( s->Remove( s->LastIndexOf( '\'' ),
 2 ), styles, provider );
      }
      else
      if ( s->TrimEnd( 0 )->EndsWith( "'C" ) )
      {
         temp->Celsius = Double::Parse( s->Remove( s->LastIndexOf( '\''
 ), 2 ), styles, provider );
      }
      else
      {
         temp->Value = Double::Parse( s, styles, provider );
      }

      return temp;
   }

protected:
   // The value holder
   double m_value;

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

   }

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

   }

};
/// <summary>
/// Temperature class stores the value as Double
/// and delegates most of the functionality 
/// to the Double implementation.
/// </summary>
public class Temperature implements IComparable,
 IFormattable {
    /// <summary>
    /// IComparable.CompareTo implementation.
    /// </summary>
    public function CompareTo(obj) : int{
        if(obj.GetType() == Temperature) {
            var temp : Temperature = Temperature(obj);

            return m_value.CompareTo(temp.m_value);
        }
        
        throw new ArgumentException("object is not a Temperature");
    
    }

    /// <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);
    }

    /// <summary>
    /// Parses the temperature from a string in form
    /// [ws][sign]digits['F|'C][ws]
    /// </summary>
    public static function
 Parse(s : String, styles : NumberStyles, provider : IFormatProvider) : Temperature{
        var temp : Temperature = new Temperature();

        if( s.TrimEnd(null).EndsWith("'F")
 ) {
            temp.Value = Double.Parse( s.Remove(s.LastIndexOf('\''), 2), styles,
 provider);
        }
        else if( s.TrimEnd(null).EndsWith("'C")
 ) {
            temp.Celsius = Double.Parse( s.Remove(s.LastIndexOf('\''), 2), styles,
 provider);
        }
        else {
            temp.Value = Double.Parse(s, styles, provider);
        }

        return temp;
    }

    // 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;
    }
}
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からDouble 構造体を検索した結果を表示しています。
Weblioに収録されているすべての辞書からDouble 構造体を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からDouble 構造体 を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Double 構造体」の関連用語

Double 構造体のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Double 構造体のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS