System.Val

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

procedure Val(S: String; var V; var Code: Integer);

プロパティ

種類 可視性 ソース ユニット
procedure public System.pas System System


説明

整数(10 進数または 16 進数)を表す文字列を数値に変換します。

Delphi コードでは、 Val は文字列値 S を、Read でテキスト ファイルから読み取ったかのように、その数値表現に変換します。$1234 と 0x1234 は、サポートされている16 進数表記です。

S は文字列型の式で、符号付き実数を構成する文字シーケンスでなければなりません("1"、"-2"、または "+3" など)。

V は整数型または実数型の変数になり得ます。 </br>

  • V が整数型(整数、Int64、など)の変数の場合、S では、すべての文字は数字でなければなりません。小数点や千単位の区切りはサポートされていません。</br>
  • V が実数型(Single、Double など)の変数である場合、S 文字列には小数点または千単位の区切り記号を含めることができます。

Code は Integer 型の変数です。

文字列が無効な場合、問題となる文字のインデックスが Code に格納され、そうでない場合、Code はゼロに設定されます。 NULL で終わる文字列の場合、Code で返されるエラー発生位置は、誤りのある文字の実際のインデックス(0 から始まるもの)よりも 1 大きくなります。

procedure Test_Val;
var
  LFval: Double;
  LIVal: Integer;
  LCode: Integer;
begin
  // Using integral type
  Val('1234', LIVal, LCode);    // Valid
  if LCode = 0 then
    WriteLn('LIVal = ', LIVal);

  Val('123.456', LIVal, LCode); // Not valid
  if LCode <> 0 then
    WriteLn('LCode = ', LCode);

  // Using floating type
  Val('1234', LFVal, LCode); // Valid
  if LCode = 0 then
    WriteLn('LFVal = ', LFVal);

  Val('123.456', LFVal, LCode); // Valid
  if LCode = 0 then
    WriteLn('LFVal = ', LFVal);
end;

関連項目


コード サンプル