プログラミング: 切り捨てが floor, 切り上げが ceil になのはなぜか


多くのプログラミング言語で、数値の切り捨てfloor, 切り上げceil という関数で実現できるようになっています。 これをなかなか覚えられないという方もいると思いますので、確実に思い出せるようにするために、その理由を解説しました。

コード例

まずは実際に、各プログラミング言語で切り捨て・切り上げがどのように行われるのか紹介します。

Kotlin

Kotlin 1.3.11 のコードです。

Python

Python 3.6.5 のコードです。

Ruby

Ruby 2.5.1 のコードです。

PHP

PHP 7.2.9 のコードです。

JavaScript

NodeJS 10.9.0 のコードです。

Haskell

Haskell 8.0.1 のコードです。 main関数として書いたので print を使っていますが、 切り捨ては floor, 切り上げは ceiling です。

なぜ floor, ceiling なのか

floor, ceil, ceiling の意味を確認してみましょう。

単語 動詞としての意味 名詞としての意味
floor 床に押し付ける
ceil 天井を張る
ceiling 天井

床と天井、要するに、下と上です。 floor で下へ押し下げ、 ceil で上に押し上げるんですね。 1.3 は floor で下 すなわち 1.3 以下の整数値になり(切り捨て)、 ceil で上 すなわち 1.3 以上の整数値になります(切り上げ)。

フロアは日本語(外来語)としても馴染みがありますね。 ceil (ceiling) は、シーリングファンなどで日本語にも入ってきています。

また、 ceiling は、 Tea party on the ceiling! というセリフで メリー・ポピンズ の中で使われていました。

実際に切り捨て・切り上げは英語でなんというのか

英語での表現はひとつではないですが、 round down/up がわかりやすいと思います。

切り捨てる
  • round down/downwards
  • disregard
  • drop
  • discard
  • cut off
  • omit
切り上げる
  • round up/upwards
  • raise

floor, ceil は使いません。

こういうのは疑問が出てきたときにすぐ調べられるよう、電子辞書を携帯しておくと便利です。