目次
多くのプログラミング言語で、数値の切り捨ては floor
, 切り上げは ceil
という関数で実現できるようになっています。 これをなかなか覚えられないという方もいると思いますので、確実に思い出せるようにするために、その理由を解説しました。
コード例
まずは実際に、各プログラミング言語で切り捨て・切り上げがどのように行われるのか紹介します。
Kotlin
Kotlin 1.3.11 のコードです。
1 2 |
Math.floor(1.3) // => 1.0 Math.ceil(1.3) // => 2.0 |
Python
Python 3.6.5 のコードです。
1 2 3 4 |
import math math.floor(1.3) # => 1 math.ceil(1.3) # => 2 |
Ruby
Ruby 2.5.1 のコードです。
1 2 |
1.3.floor # => 1 1.3.ceil # => 2 |
PHP
PHP 7.2.9 のコードです。
1 2 |
floor(1.3) // => 1 ceil(1.3) // => 2 |
JavaScript
NodeJS 10.9.0 のコードです。
1 2 |
Math.floor(1.3) // => 1 Math.floor(1.3) // => 2 |
Haskell
Haskell 8.0.1 のコードです。 main
関数として書いたので print
を使っていますが、 切り捨ては floor
, 切り上げは ceiling
です。
1 2 3 |
main = do print (ceiling 1.3) print (floor 1.3) |
なぜ 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 は使いません。
こういうのは疑問が出てきたときにすぐ調べられるよう、電子辞書を携帯しておくと便利です。