设为首页
收藏本站
开启辅助访问
登录
立即注册
论坛首页
BBS
资源站采集问题
免费送云VPS
搜索
搜索
流量变现70%分成
全国楼凤小姐姐
招商联系客服
招商联系客服
招商联系客服
招商联系客服
公告导航
公告导航
获取积分方法
牛牛插件助手
赞片退还积分
技术支持声明
站长工具
站长工具
爱站综合查询
站长综合查询
草料二维码
WHOIS查询
备案查询
加密解密
资源推荐
资源推荐
索尼资源
闪电资源
无尽资源
OK资源
快车资源
最大资源
本版
文章
帖子
群组
用户
牛牛论坛
»
论坛首页
›
牛牛cms教程区
›
其他教程
›
JavaScript代码中Math.round(),Math.ceil(),Math.floo ...
返回列表
发新帖
JavaScript代码中Math.round(),Math.ceil(),Math.floor()的区别和使用方法
[复制链接]
136
|
0
|
2024-10-2 11:51:59
|
显示全部楼层
|
阅读模式
在JavaScript前端开发各种场景中,经常会使用到一些非整数的数值,即小数点后面有多位数,例如:3.1415926。当对数值应用要求取整数时就会用到Math.round(),Math.ceil(),Math.floor(),下面来看看它们的区别和使用方法:
Math.round()
Math.round() “四舍五入”, 该函数返回的是一个四舍五入后的的整数
<p><font size="3">double d = 3.1415926;</font></p><p><font size="3">double d2 = 18.58;</font></p><p><font size="3">double d3 = -15.23;</font></p><p><font size="3">double d4 = -16.85;</font></p><p><font size="3">long round1 = Math.round(d); // 结果 3</font></p><p><font size="3">long round2 = Math.round(d2); // 结果 19</font></p><p><font size="3">long round3 = Math.round(d3); // 结果 -15</font></p><p><font size="3">long round4 = Math.round(d4); // 结果 -17</font></p>
复制代码
当小数点第一位=5是,这时要注意正负数的结果。例如
<p><font size="3">double d5 = -16.5;</font></p><p><font size="3">double d6 = 16.5;</font></p><p><font size="3">long round5 = Math.round(d5); // 结果 -16</font></p><p><font size="3">long round6 = Math.round(d6); // 结果 17</font></p>
复制代码
总结:负数,小数点第一位是5时,直接舍去,整数部分不 +1; 正数,小数点第一位是5时,往整数部分 +1
Math.ceil()
Math.ceil() “向上取整”, 即小数部分直接舍去,并向正数部分进1
<p><font size="3">double d = 3.1415926;</font></p><p><font size="3">double d2 = 18.58;</font></p><p><font size="3">double d3 = -15.23;</font></p><p><font size="3">double d4 = -16.85;</font></p><p><font size="3">double d5 = -16.5;</font></p><p><font size="3">double d6 = 16.5;</font></p><p><font size="3"> </font></p><p><font size="3">double ceil1 = Math.ceil(d); // 结果 4.0</font></p><p><font size="3">double ceil2 = Math.ceil(d2); // 结果 19.0</font></p><p><font size="3">double ceil3 = Math.ceil(d3); // 结果 -15.0</font></p><p><font size="3">double ceil4 = Math.ceil(d4); // 结果 -16.0</font></p><p><font size="3">double ceil5 = Math.ceil(d5); // 结果 -16.0</font></p><p><font size="3">double ceil6 = Math.ceil(d6); // 结果 17.0</font></p>
复制代码
【注】该数为小数时,小数部分直接舍去
Math.floor()
Math.floor() “向下取整” ,即小数部分直接舍去
<p><font size="3">double d = 3.1415926;</font></p><p><font size="3">double d2 = 18.58;</font></p><p><font size="3">double d3 = -15.23;</font></p><p><font size="3">double d4 = -16.85;</font></p><p><font size="3">double d5 = -16.5;</font></p><p><font size="3">double d6 = 16.5;</font></p><p><font size="3"> </font></p><p><font size="3">double floor1 = Math.floor(d); // 结果 3.0</font></p><p><font size="3">double floor2 = Math.floor(d2); // 结果 18.0</font></p><p><font size="3">double floor3 = Math.floor(d3); // 结果 -16.0</font></p><p><font size="3">double floor4 = Math.floor(d4); // 结果 -17.0</font></p><p><font size="3">double floor5 = Math.floor(d5); // 结果 -17.0</font></p><p><font size="3">double floor6 = Math.floor(d6); // 结果 16.0</font></p>
复制代码
【注】 Math.floor()容易出现精度问题,举个最简单例子:
对小数 8.54 保留两位小数(虽然它已经保留了 2 位小数):
Math.floor(8.54*100)/100 // 输出结果为 8.53, 注意是 8.53 而不是 8.54。
所以这种函数慎用。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
real
1387
主题
17
回帖
1万
积分
金牌会员
金牌会员, 积分 10753, 距离下一级还需 19247 积分
金牌会员, 积分 10753, 距离下一级还需 19247 积分
积分
10753
加好友
发消息
回复楼主
返回列表
采集帮助
苹果cms教程
海洋cms教程
飞飞cms教程
图文推荐
2024新版苹果cmsV10 MXProV4.5自适应影视站主题模板
2024-08-18
牛牛论坛如何获得积分
2024-09-22
小龟影视基于苹果CMS系统的双端视频播放APP源码
2024-08-15
【百度爬虫2.4版】站群SEO系统/高质量养站/寄生虫/泛目录/自动收
2024-08-29
新手如何做seo网站?
2024-10-08
热门排行
1
PHP显示当前在线用户
2
2024新版苹果cmsV10 MXProV4.5自适应影视站
3
PHP显示当前在线用户
4
小龟影视基于苹果CMS系统的双端视频播放APP
5
牛牛论坛如何获得积分
6
2024全新改版美化小小影视app双端源码开源
7
各位有什么推荐的采集站吗
8
【百度爬虫2.4版】站群SEO系统/高质量养站/
9
苹果CMS v10 插件安装使用介绍
10
苹果cmsv10海螺自适应4号模板