一诗概括数的舍入之ceil、round、floor
来源:     阅读:467
云上智慧
发布于 2020-04-24 17:23
查看主页

咳咳,先来首不怎样押韵的打油诗:

天花板高地板低
四舍五入不看一
遇到负的N点五
统统变成负的N

啥玩意儿!别急,请往下看~

js的Math对象提供了三种舍入的方法,分别是:

  1. Math.ceil()——天花板:向上舍入、向大舍入
  2. Math.round()——四舍五入
  3. Math.floor()——地板:向下舍入、向小舍入

其中Math.ceil()Math.floor()两种舍入方法最好了解,看一组测试:

// Math.ceil()向上舍入Math.ceil(-1.4) // -1Math.ceil(-1.5) // -1Math.ceil(-1.6) // -1Math.ceil(1.4) // 2Math.ceil(1.5) // 2Math.ceil(1.6) // 2
// Math.floor()向下舍入Math.floor(-1.4) // -2Math.floor(-1.5) // -2Math.floor(-1.6) // -2Math.floor(1.4) // 1Math.floor(1.5) // 1Math.floor(1.6) // 1

记忆:对于任意数,无论正负,Math.ceil()都是得到数值更大的数,Math.floor()都是得到数值更小的数。也就是打油诗的第一句:

天花板高地板低

但是,Math.round()在特定情况下比较特殊,需要单独记忆,先看常规情况的测试:

// Math.round()四舍五入Math.round(-1.4) // -1Math.round(-1.6) // -2Math.round(1.4) // 1Math.round(1.5) // 2Math.round(1.6) // 2

记忆:以上情况(非-x.5,x为任意数)都可以了解为Math.round()眼里没有符号,无论正负,都先按正数对待,四舍五入之后再添上对应的符号。

但上面的记忆方法对于-x.5就不适用了,不信请看测试:

Math.round(-1.5) // -1

Math.round(-1.5)不等于-2,而是等于-1!

总结:
天花板高地板低(ceil得到数值更大的数、floor相反)
四舍五入不看一(“一”了解成负号“-”,存粹为了押韵)
遇到负的N点五
统统变成负的N(这句的韵脚实在是押不住啊~)

给个小心心呗

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
HTTP常用状态码整理
无线开发的思考(二):多形态终端
如何在 CentOS 中安装 XWiki
完美兼容老项目!Dataway 4.1.6 返回结构的全面控制
MySQL存储过程的-delete不执行事件
首页
搜索
订单
购物车
我的