toNumber: Notion Formula 解説 (3)

はじめに

Notion Formula の第3回目では他の型を数値に変換する toNumber メソッドを確認します。すでに逆引き Formula のページに関数説明があるので、このページを見ながら解説していきます。

toNumber

文字列型から数値型への変換

数式は以下のように記載してあります。value に書かれているテキスト型のプロパティが数値に変換されています。

prop("value").toNumber()
  1. 123 という文字列は数値の 123 に変換されています
  2. 10.5 という小数点を持つ値も 10.5 と正しく変換されています。
  3. 11,000 のような「,」付の数値は「,」の前までしか認識しないため、11 になってしまいます。
  4. 数字以外のものやテキストが空欄のとき、Empty となっています。ただし、型は数値型となっています。これらは数値型の空欄を作成するために使えるテクニックです。 → 空の日付・空の数値を作成するには
    テキストから変換

日付から数値型への変換

日付から toNumber で変換すると、別途用意されている timestamp() メソッドと同じ値が返ってきました。timestamp の説明には「1970年1月1日から経過したミリ秒数を表す、現在のUnixタイムスタンプを返します。」と書いてあります。日付を数値に直した時も同じ値が出るようです。

日付から変換
コードブロックにすると以下のようになります。現在時刻に対して、時間を引き算し、その後分を引き算している様子が非常にわかりやすいです。

now()
    .dateSubtract(now().hour(), "hours")
    .dateSubtract(now().minute(), "minutes")

チェックボックスから数値型への変換

チェックボックスから toNumber で変換すると、true が 1 、false が 0 になります。true のものの数を数えたいとき、toNumber() で変換してから sum を取ることで true の個数を数え上げることができます。

チェックボックスから変換

おわりに

toNumber は比較的わかりやすいと思いますが、空白や数値以外のもの(ここでは説明しませんでしたが、リストなどもそうでした)を渡すと、Empty に変換されました。これは空欄の数値型を作りたいときに使える小技になります。