Double.ValueOf メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| ValueOf(String) |
引数文字列 |
| ValueOf(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
}
}
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
こちらもご覧ください
適用対象
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 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。