[Delphi] 数値を表す文字列を数値に変換

StrToInt は、10進または16進表記の整数型の数値を表す文字列(S)を数値に変換します。 しかし、Sが有効な数値を表していない場合、StrToInt は EConvertError 例外を生成します。
きちんと例外処理していても、開発環境で作業している際には、例外発生のダイアログが出てうっとうしいものです。 Delphi7以降の場合、TryStrToIntDef を使うと例外が発生せずチェックが可能です。StrToInt を使う場合でも 例外発生時に何か特別な値をセットするようなプログラムの場合には、StrToIntDef が有効です。 また 、Val 手続きを使うと2番目の引数の型を変更することで、数値チェックをする数字の範囲を変更可能です。

StrToIntは整数型の場合に有効ですが、他にExtended型に変換するStrToFloatや、通過型に変換するStrToCurrなど用途に合わせて選択してください。

Delphi7以降の場合
TryStrToIntDef(s);
Delphi6までや、細かい制御が必要な場合
///数値チェック
///チェック対象文字列
/// True:数値文字列, Flase:非数値文字列
function IsNumeric(s: String): Boolean;
var
  c: Integer;
  n: Extended;  // ここの型を変えることでチェック範囲を変更できます。
begin
  Val(s, n, c);
  Result := (c = 0);
end;

コメント (0件)


くろねこ研究所
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0037