int = 実数や文字列を整数化する - AWK
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
整数にします。数学的な切り捨てを行います。o 変換したい値が「整数値に近い実数」の時は、注意します。計算誤差で1つずれる事があるからです。
**** 書式
--------
int( 変換したい値 )
--------
o 変換したい値 -- 整数に変換したい数値。文字列で指定する事も出来ます(例:"39.39だよ")。
o 戻り値 -- 変換結果
**** 使用例
--------
BEGIN {
print int(39.39); # 39
print "# 以下、計算結果の確認です。";
print int("-39.39aaa"); # -39
print int(" 39.39"); # 39
print int("aaa39.39"); # 0
}
--------
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
**** 機能
o 数値であると解釈して、小数点以下を0にします。
o 有効桁数は、処理系によって異なります。
+ 32ビットOS用の処理系の場合、15桁程度みたいです。
+ 処理系というよりも、処理系を作った(= コンパイルした)時の環境で決まるみたいです。
o 負の値を指定した時、0に近づけますので、値としては大きくなります。
+ int(-1.5) は -1 になります。
o 数値の後ろに文字列が続いていても、大丈夫です。
o 先頭に数値以外の文字がある場合
+ 半角空白は読み飛ばします。
+ それ以外の文字があると、0 を返します。
** 処理系に依存する動作
o 数値の有効桁数は、15桁程度です。C言語のdouble型に依存しています。
o 整数の値が 2147483647を超える時、処理系毎に表示形式が異なります。
+ 常に整数表示、かつ誤差をそのまま残す処理系 = Gawk for Windows 3.1.6
+ 常に整数表示、かつ、およそ18桁目以降を0で埋める処理系 = Gawk on Windows 3.1.7と オリジナル(the one true awk(updated May 1, 2007))
+ 2147483647を超えると、浮動小数点形式で表示する処理系(= 実際の値の有効桁数は、上の処理系と同じです。) = mawk系(mawk MBCS (32bit版) 1.3.3 と Mawk for Windows 1.3.3)
**** メモ
o AWKに限った事ではありませんが、数値計算では、整数化などの、値を丸める機能の使い方が、一番難しいと思います。
o コンピューターの計算誤差に対して、計算結果の値が正しくなるように、補正する必要があるからです。
**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3
o original = the one true awk(updated May 1, 2007)
==
関連ページ:
▼AWKの数値計算関数と関連機能(▼ABC順)
▼AWKの文字列操作関数と関連機能(▼ABC順)
▼AWKプログラムを書く(▼ABC順)
▼AWK
▼制作メモ
> strtonum = 10進数、8進数、16進数の文字列を数値に変換する(Gawk専用)
sqrt = 平方根を求める
sin = 正弦を求める
split = 文字列を分割する
(2010年6月12日追加。オリジナルawkなどの動作)
(2010年6月10日追加。有効桁数)