Language

Double.ValueOf メソッド

定義

オーバーロード

名前 説明
ValueOf(String)

引数文字列Doubleで表されるdouble値を保持するs オブジェクトを返します。

ValueOf(Double)

指定したDouble値を表すdouble インスタンスを返します。

ValueOf(String)

引数文字列Doubleで表されるdouble値を保持するs オブジェクトを返します。

[Android.Runtime.Register("valueOf", "(Ljava/lang/String;)Ljava/lang/Double;", "")]
public static Java.Lang.Double ValueOf(string s);
[<Android.Runtime.Register("valueOf", "(Ljava/lang/String;)Ljava/lang/Double;", "")>]
static member ValueOf : string -> Java.Lang.Double

パラメーター

s
String

解析する文字列。

返品

Double引数で表される値を保持するString オブジェクト。

属性

例外

stringを double 値として解析できない場合。

注釈

引数文字列Doubleで表されるdouble値を保持するs オブジェクトを返します。

sがnullされている場合は、NullPointerExceptionがスローされます。

sの先頭と末尾の空白文字は無視されます。 空白は、 String#trim メソッドのように削除されます。つまり、ASCII スペースと制御文字の両方が削除されます。 残りの s は、構文構文規則で説明されているように FloatValue を 構成する必要があります。

<blockquote><dl><dt>FloatValue:<dd>Sign<sub>opt</sub>NaN<dd>>Infinity<ddd >Sign<sub>opt</sub> FloatingPointLiteral<dd>Sign<sub>opt</sub> HexFloatingPointLiteral<dd>SignedInteger</dl>

<dl><dt>HexFloatingPointLiteral: <dd>HexSignificand BinaryExponent FloatTypeSuffix<sub>opt</sub></dl>

<dl><dt>HexSignificand:<dd>HexNumeral<dd>HexNumeral.<dd>0xHexDigits<sub></sub>. HexDigits<dd>0X HexDigits<sub>opt</sub>.HexDigits</dl>

<dl><dt>BinaryExponent:<dd>BinaryExponentIndicator SignedInteger</dl>

<dl><dt>BinaryExponentIndicator:<dd>p<dd>P</dl>

</blockquote>

ここで、Sign、FloatingPointLiteral、HexNumeral、HexDigits、SignedInteger、FloatTypeSuffix は、<cite>Java言語仕様</cite> の構文構造セクションで定義されています。ただし、数字間ではアンダースコアが受け入れられない点が異なります。 s FloatValue の形式がない場合は、NumberFormatExceptionがスローされます。 それ以外の場合、 s は、通常の "コンピューター化された科学的表記" または正確な 16 進数の値で正確な 10 進値を表すものと見なされます。この正確な数値は概念的に "無限に正確な" バイナリ値に変換されます。この値は、IEEE 754 浮動小数点演算の通常の丸めから最も近い規則 (ゼロ値の符号の保持を含む) によって double 型に丸められます。

最も近いラウンドツーニアスルールはオーバーフローとアンダーフローの動作も意味します。 s の正確な値の大きさが十分に大きい (#MAX_VALUE + Math#ulp(double) ulp(MAX_VALUE)/2 以上) 場合、 double に丸める結果は無限大になり、 s の正確な値が大きさで十分に小さい ( #MIN_VALUE/2 以下) 場合、浮動小数点への丸めは 0 になります。

最後に、このDouble値を表すdouble オブジェクトを丸めた後に返されます。

浮動小数点値のローカライズされた文字列表現を解釈するには、 java.text.NumberFormatのサブクラスを使用します。

浮動小数点リテラルの型を決定する末尾の書式指定子(1.0f は float 値、 1.0d は double 値)は、このメソッドの結果に影響を与 <em>not</em> 注意してください。 つまり、入力文字列の数値は、対象の浮動小数点型に直接変換されます。 文字列からfloatへのfloatが続くdoubleの 2 段階の変換シーケンスは<em></em>文字列を直接doubleに変換することと同じです。 たとえば、 float リテラル 0.1f は、 double 値 0.10000000149011612と等しくなります。 float リテラル 0.1f は、 double リテラル 0.1とは異なる数値を表します。 (数値 0.1 を 2 進浮動小数点数で正確に表すことはできません。

無効な文字列に対してこのメソッドを呼び出し、 NumberFormatException をスローしないようにするには、次の正規表現を使用して入力文字列をスクリーニングできます。

{@code
             final String Digits     = "(\\p{Digit}+)";
             final String HexDigits  = "(\\p{XDigit}+)";
             // an exponent is 'e' or 'E' followed by an optionally
             // signed decimal integer.
             final String Exp        = "[eE][+-]?"+Digits;
             final String fpRegex    =
                 ("[\\x00-\\x20]*"+  // Optional leading "whitespace"
                  "[+-]?(" + // Optional sign character
                  "NaN|" +           // "NaN" string
                  "Infinity|" +      // "Infinity" string

                  // A decimal floating-point string representing a finite positive
                  // number without a leading sign has at most five basic pieces:
                  // Digits . Digits ExponentPart FloatTypeSuffix
                  //
                  // Since this method allows integer-only strings as input
                  // in addition to strings of floating-point literals, the
                  // two sub-patterns below are simplifications of the grammar
                  // productions from section 3.10.2 of
                  // The Java Language Specification.

                  // Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt
                  "((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+

                  // . Digits ExponentPart_opt FloatTypeSuffix_opt
                  "(\\.("+Digits+")("+Exp+")?)|"+

                  // Hexadecimal strings
                  "((" +
                   // 0[xX] HexDigits ._opt BinaryExponent FloatTypeSuffix_opt
                   "(0[xX]" + HexDigits + "(\\.)?)|" +

                   // 0[xX] HexDigits_opt . HexDigits BinaryExponent FloatTypeSuffix_opt
                   "(0[xX]" + HexDigits + "?(\\.)" + HexDigits + ")" +

                   ")[pP][+-]?" + Digits + "))" +
                  "[fFdD]?))" +
                  "[\\x00-\\x20]*");// Optional trailing "whitespace"

             if (Pattern.matches(fpRegex, myString))
                 Double.valueOf(myString); // Will not throw NumberFormatException
             else {
                 // Perform suitable alternative action
             }
            }

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

こちらもご覧ください

適用対象

ValueOf(Double)

指定したDouble値を表すdouble インスタンスを返します。

[Android.Runtime.Register("valueOf", "(D)Ljava/lang/Double;", "")]
public static Java.Lang.Double ValueOf(double d);
[<Android.Runtime.Register("valueOf", "(D)Ljava/lang/Double;", "")>]
static member ValueOf : double -> Java.Lang.Double

パラメーター

d
Double

double 値。

返品

Doubleを表すd インスタンス。

属性

注釈

指定したDouble値を表すdouble インスタンスを返します。 新しい Double インスタンスが必要ない場合は、通常、このメソッドをコンストラクターの #Double(double)優先して使用する必要があります。これは、このメソッドは、頻繁に要求される値をキャッシュすることで、大幅に優れた領域と時間のパフォーマンスを実現する可能性が高くなります。

1\.5 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象