JavaScript Math.ceil 方法(对数值向上取整)


Posted in Javascript onJanuary 09, 2015

JavaScript Math.ceil 方法
Math.ceil 方法用于对数值向上取整,即得到大于或等于该数值的最小整数。语法如下:

Math.ceil(x)
参数说明:

参数 说明
x 必需。必须是一个数值。

提示:该方法与 Math.floor 方法正好相反。

Math.ceil 方法实例

<script language="JavaScript">
document.write( Math.ceil(0.35) + "<br />" );
document.write( Math.ceil(10) + "<br />" );
document.write( Math.ceil(-10) + "<br />" );
document.write( Math.ceil(-10.1) );
</script>

运行该例子,输出:

1
10
-10
-10

Math.ceil 方法的错误?
试着运行下面的例子:

<script language="JavaScript"> document.write( Math.ceil(2.1/0.7) ); </script> 该例子运行的结果并不是如我们期望的得到 3(2.1/0.7=3),而是 4,这显然与我们的常识相悖,难道是 Math.ceil 方法的错误?

真实的情况是,在进行 2.1/0.7 计算时,是按照浮点数来处理的。而计算机由于二进制的关系,不可能对浮点数做到完全精确(即通常会损失一点进度),所以导致 2.1/0.7 的计算结果并不是正好等于 3 ,而是超过 3 一点点(约:3.00000000000000044409)。所以该表达式应用了 Math.ceil() 之后,得到的结果是 4 。

关于 ceil 函数不准确的问题,在《PHP 浮点数计算比较及取整不准确的解决方法》一文中也曾提及,在 PHP 中可以方便的用 round() 函数进行处理。但 JavaScript 中的 Math.round() 过于粗暴,因此必须单独写一个函数来处理这类情况,即将 1 位小数点后的多余的数值都取掉,在使用 Math.ceil() 方法。

Javascript 相关文章推荐
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
js获取class的所有元素
Mar 28 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
May 07 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
PHP获取当前页面完整URL的方法
Dec 02 Javascript
JS基于面向对象实现的多个倒计时器功能示例
Feb 28 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
react 兄弟组件如何调用对方的方法示例
Oct 23 Javascript
Vue实现点击显示不同图片的效果
Aug 10 Javascript
js实现点击生成随机div
Jan 16 Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 #Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 #Javascript
使用javascript实现json数据以csv格式下载
Jan 09 #Javascript
js读取csv文件并使用json显示出来
Jan 09 #Javascript
微信JS接口汇总及使用详解
Jan 09 #Javascript
推荐一款jQuery插件模板
Jan 09 #Javascript
JavaScript中Cookie操作实例
Jan 09 #Javascript
You might like
BBS(php &amp; mysql)完整版(二)
2006/10/09 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
JQuery开发的数独游戏代码
2010/10/29 Javascript
jquery json 实例代码
2010/12/02 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
python各种语言间时间的转化实现代码
2016/03/23 Python
Python做简单的字符串匹配详解
2017/03/21 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
详解django中自定义标签和过滤器
2017/07/03 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
员工工作表扬信范文
2014/01/13 职场文书
美德好少年事迹材料
2014/01/19 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
教师师德反思材料
2014/02/15 职场文书
倡议书格式模板
2014/05/13 职场文书
民事诉讼代理词
2015/05/25 职场文书
死亡诗社观后感
2015/06/05 职场文书
Filebeat 采集 Nginx 日志的方法
2021/03/31 Servers
Python 多线程之threading 模块的使用
2021/04/14 Python