質問: javascriptにおける小数点の切り上げを行うceiling()とceil()の違いを教えてください。 今現在学んでいる書籍には、ceiling()は載っておらず、ceil()のみです。 パーフェクトjavascript126pにて別の書籍の引用として ``` Maththis < 0? "ceiling" : "floor" ``` という与えられた数字の符号によって呼び出すメソッドを変えるブラケット演算子です。 この引用で初めて、ceil以外にceilingがあるのだと知りました。これらの違いは何なのでしょうか。flooring()も存在するのでしょうか。 また、書籍を見るまでは、数字の符号によって云々という処理をifなどの条件分岐で行っていたと思うのですが、ブラケット演算子を利用することで、こんな少ない行で切り上げ、切り下げができることを知りました。どうすれば賢くソース設計ができるようになるのでしょうか。このような、私にとってタメになる設計図を暗記していく以外にないのでしょうか。
回答: **Math.ceiling は存在しません。** Google Chrome 等のブラウザで実行するだけで明らかになるので、質問する前に自分の環境で検証して下さい。 ### 書籍『パーフェクトJavaScript』 文章を局所的に見るのでなく、前後をよく読みましょう。 『パーフェクトJavaScript』(P126)には次の一文があります。 > > 技巧的ですが書籍「JavaScript: The Good Parts」(注4)の例を引用します。 > > > つまり、『JavaScript: The Good Parts』の中のコードを転記したのでしょう。 該当ページ数が書いてない辺りは引用としては不完全ですが。 ### 書籍『JavaScript: The Good Parts』 * O'Reilly Japan - JavaScript: The Good Parts [2009年1月 (2刷にて修正)] の節で > > - P.38 > > Math.ceiling(2箇所あり) > > ↓ > > Math.ceil > > > とありますので、typoでしょう。 ### まとめ 『JavaScript: The Good Parts』は古い書籍なので『パーフェクトJavaScript』の執筆時点では改定済のはずですが、著者は『JavaScript: The Good Parts』の初版を持っていてそちらを参考にしたのでしょうね。 ただし、JavaScript を学習した人なら気が付いて当然の typo であり、『パーフェクトJavaScript』の内容は信頼性が低いといわざるをえません。 書籍にする前に実行してみれば一目瞭然でしょう。 Re: aaaaaaaa さん