メインコンテンツまでスキップ
に最終更新

BOOLEAN 型への変換

BOOLEAN 型は真偽値を表し、true と false の二つの状態のみを取ります。

文字列からの変換​

動作の変更

以前は '1.11' のような文字列を BOOLEAN 型の 'true' に変換できましたが、4.0 以降は null に変換されるか(非厳格モード)、エラーになります(厳格モード)。 以前は 'on'、'off'、'yes'、'no' のような値は null に変換されていましたが、4.0 以降はそれぞれに対応する真偽値に変換できます。

厳格モード​

BNF 定義​

<boolean> ::= <whitespace>* <bool_like> <whitespace>*

<bool_like> ::= "0" | "1" | "t" | "T" | "f" | "F" | <yes> | <no> | <on> | <off> | <true> | <false>

<yes> ::= ("y" | "Y") ("e" | "E") ("s" | "S")

<no> ::= ("n" | "N") ("o" | "O")

<on> ::= ("o" | "O") ("n" | "N")

<off> ::= ("o" | "O") ("f" | "F") ("f" | "F")

<true> ::= ("t" | "T") ("r" | "R") ("u" | "U") ("e" | "E")

<false> ::= ("f" | "F") ("a" | "A") ("l" | "L") ("s" | "S") ("e" | "E")

<whitespace> ::= " " | "\t" | "\n" | "\r" | "\f" | "\v"

ルールの説明​

真偽値は 0、1、yes、no、on、off、true、false の形式で指定でき、大文字と小文字は区別されません。また、値の前後には任意の数の空白文字(スペース、タブ、改行など)を含めることができます。

形式に適合しない場合は、エラーが報告されます。

例​

文字列BOOLEAN への変換結果備考
"true"true
"false"false
" \t\r\n\f\v true \t\r\n\f\v"true前後に空白文字がある場合
"1.1"Error無効な形式
"YeS"true大文字と小文字を区別しない
'+0'Error無効な形式

非厳格モード​

BNF 定義​

<boolean> ::= <whitespace>* <bool_like> <whitespace>*

<bool_like> ::= "0" | "1" | "t" | "T" | "f" | "F" | <yes> | <no> | <on> | <off> | <true> | <false>

<yes> ::= ("y" | "Y") ("e" | "E") ("s" | "S")

<no> ::= ("n" | "N") ("o" | "O")

<on> ::= ("o" | "O") ("n" | "N")

<off> ::= ("o" | "O") ("f" | "F") ("f" | "F")

<true> ::= ("t" | "T") ("r" | "R") ("u" | "U") ("e" | "E")

<false> ::= ("f" | "F") ("a" | "A") ("l" | "L") ("s" | "S") ("e" | "E")

<whitespace> ::= " " | "\t" | "\n" | "\r" | "\f" | "\v"

ルールの説明​

真偽値は 0、1、yes、no、on、off、true、false の形式で指定でき、大文字と小文字は区別されません。また、値の前後には任意の数の空白文字(スペース、タブ、改行など)を含めることができます。

形式に適合しない場合は、null が返されます。

例​

文字列BOOLEAN への変換結果備考
"true"true
"false"false
" \t\r\n\f\v true \t\r\n\f\v"true前後に空白文字がある場合
"1.1"null無効な形式
"YeS"true大文字と小文字を区別しない
'+0'null無効な形式

数値からの変換​

動作の変更

以前は date/datetime のような数値以外の型も BOOLEAN 型に変換できましたが、4.0 以降はサポートされません。

厳格モード​

ルールの説明​

数値型(int/double/decimal)では、ゼロ以外の値は true とみなされます。

浮動小数点数の正のゼロと負のゼロは false に変換されます。

例​

数値型の値BOOLEAN への変換結果備考
121231true
0false
+0.0false浮動小数点数の正のゼロ
-0.0false浮動小数点数の負のゼロ
-1true
1true

非厳格モード​

ルールの説明​

数値型(int/double/decimal)では、ゼロ以外の値は true とみなされます。

浮動小数点数の正のゼロと負のゼロは false に変換されます。

例​

数値型の値BOOLEAN への変換結果備考
121231true
0false
+0.0false浮動小数点数の正のゼロ
-0.0false浮動小数点数の負のゼロ
-1true
1true