1.情景展示

根据提供的毫秒数进行除法运算,如果将毫秒数转换成小时,小时数不为0,则只取整数位,依此类推...

2.情况分析

可以使用3个函数实现

Math.floor(num)   只保留整数位

Math.rint(num)     余数四舍五入

Math.ceil(num)     取整位,再+1

举例:

double num = 3.1415926;

System.out.println(Math.floor(num));// 3.0

System.out.println(Math.rint(num));// 3.0

System.out.println(Math.ceil(num));// 4.0

网上取整的例子到这就结束啦,都说了只取整数位,返回的是一个double类型的数字,所以,还需要强转成整数。

这次是正确答案!

double num = 3.1415926;

System.out.println((int)Math.floor(num));// 3

System.out.println((int)Math.rint(num));// 3

System.out.println((int)Math.ceil(num));// 4

3.解决方案

// 还差多长时间执行,单位:毫秒数

long exeTime = 1234567;

// 时间单位

String timeUnit = "";

// 首次执行剩余时间

int remaTime = 0;

if (Math.floor(exeTime/1000/3600) > 0) {

remaTime = (int)Math.floor(exeTime/1000/3600);

timeUnit = "小时";

} else if (Math.floor(exeTime/1000/60) > 0) {

remaTime = (int)Math.floor(exeTime/1000/60);

timeUnit = "分钟";

} else {

remaTime = (int)Math.floor(exeTime/1000);

timeUnit = "秒";

}

System.out.println("启动定时器...SbptAction...距离任务执行还有" + remaTime + timeUnit + "!");

4.问题扩展

这样写,有一个问题,如果你的项目使用了SonarLint代码检测工具,原生的代码检测会报错。

意思是说:这样的算法很简单,根本不需要调用取整函数,就能知道结果。属于严重错误级别。

吐槽:这个规则很傻逼,它根本不知道咋回事,还说你愚蠢。

如何规避这个错误检测规则?

double hours = exeTime/1000/3600;

double minutes = exeTime/1000/60;

double seconds = exeTime/1000;

if (Math.floor(hours) > 0) {

remaTime = (int)Math.floor(hours);

timeUnit = "小时";

} else if (Math.floor(minutes) > 0) {

remaTime = (int)Math.floor(minutes);

timeUnit = "分钟";

} else {

remaTime = (int)Math.floor(seconds);

timeUnit = "秒";

}

使用上述代码进行替换,就不会报严重错误了!

写在最后

哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

相关推荐:

标签:java,运算,floor,int,remaTime,num,exeTime,除法,Math

来源: https://www.cnblogs.com/Marydon20170307/p/10671478.html

java只保留整数_java 除法运算只保留整数位的3种方式相关推荐

  1. java只保留整数_java 除法运算只保留整数位的4种方式

    1.情景展示 根据提供的毫秒数进行除法运算,如果将毫秒数转换成小时,小时数不为0,则只取整数位,依此类推... 2.情况分析 可以使用3个函数实现 Math.floor(num)  只保留整数位 Ma ...

  2. java 设置session超时_Java设置session超时(失效)的三种方式

    转自:http://blog.csdn.net/hu_shengyang/article/details/8021435 1.      在web容器中设置(此处以tomcat为例) 在tomcat- ...

  3. java 除法取整_java 除法运算只保留整数位的4种方式

    1.情景展示 根据提供的毫秒数进行除法运算,如果将毫秒数转换成小时,小时数不为0,则只取整数位,依此类推... 2.情况分析 可以使用3个函数实现 Math.floor(num)  只保留整数位 Ma ...

  4. java applet怎么运行_Java如何运行Applet?运行Applet的两种方式

    详细内容 applet是一个小型的动态Java程序,那么如何运行Applet?本篇文章就给大家介绍Applet,让大家了解Applet是什么,运行Applet的方法,希望对你们有所帮助. Java a ...

  5. java 设置word刷新_Java 设置Word中的表格自适应的3种方式

    概述 class="MsoNormal">在Word创建表格时,可设置表格"自动调整",有3种情况,通过Java程序设置可调用相应的方法来实现,即: 根据 ...

  6. java reds 集群_java项目中配置redis-cluster集群的两种方式

    本文分两部分: (1)jedisCluster (2)Spring-Data-Redis集群配置和RedisTemplate用法 我这里是在本机上搭建的3主3从6个redis实例. 一,jedisCl ...

  7. Java除法运算(保留小数)

    编程的人都知道,java中的"/"."%"运算,其中前者为取整,后者取余数.那么有没有快捷的运算方法取正常的运算结果呢? 查了资料,发现很简单.代码如下: /* ...

  8. java 除 取模_除法运算和取模

    package review20140420; /* * 除法和取模(整数除以整数,会出现除数不能为零的异常) */ public class Test2 { //程序的入口 public stati ...

  9. Android除法运算,保留小数

    进行Android开发已经差不多2年多了,第一次写这个博客. 再开发中遇到int/int,我们希望保留小数点,那怎么办呢? 我写了个方法可以进行此操作. /*** 提供(相对)精确的除法运算.当发生除 ...

最新文章

  1. Go 学习笔记(39)— Go 反射
  2. 桥接模式和路由模式区别_【微课堂】路由器设置:桥接模式vs路由模式
  3. java在己有的类创子类怎么创_如何使用Java创建自己的异常子类
  4. ASP.NET MVC – 视图简介
  5. Android新手之旅(10) 嵌套布局
  6. Windows Embedded Compact 7网络编程概述(上)
  7. python常见的语法错误_python常见语法错误有什么
  8. android 拍照不能保存图片格式,Android 拍照后保存到手机里,在相册找不到
  9. 【Python】分享几个好用到爆的Python内置模块
  10. LeetCode 4 寻找两个正序数组的中位数
  11. MySQL 中的三中循环 while loop repeat 的基本用法
  12. js删除两个集合中共同元素_多个集合中的共同和独特元素
  13. 图像算法四:【图像增强--频率域】傅里叶变换、快速傅里叶变换、频域滤波、频域低通滤波、频域高通滤波
  14. scala学习笔记二----交互式shell编程使用
  15. 华为服务器扩容内存进不去系统,服务器换内存系统出问题吗
  16. 虚幻4 - ARPG实战教程(第一季)
  17. 如何使用Three.js为3D模型构建Color Customizer应用
  18. 明朝取代元朝鲜为人知的秘密
  19. msi z170 网卡 linux,麻雀虽小五脏俱全:msi 微星 发布 Z170I Gaming Pro AC Mini-ITX主板...
  20. 全年股价暴涨超110% TTD能否杀出巨头们的围墙花园?

热门文章

  1. Darkroom v6.0.4 Mac版 照片和视频编辑器 兼容 M1
  2. win10ad域 用户和计算机,Windows AD域通过GPO设置客户端电脑本地管理员账号密
  3. 企业应该怎样做好设备管理?
  4. mac 设置 nginx 代理
  5. RK3288_Android7.1色温固化的部分移植问题
  6. 使用vue全家桶制作博客网站
  7. linux tar -cvf目录压缩后更大,Linux tar打包命令详解
  8. 计算机二级考试2021考试时间黑龙江,2021年3月黑龙江计算机等级考试时间是什么时候...
  9. 【SpeechX—统一高性能语音部署工具】SpeechX Architecture
  10. 浏览器访问百度的整个过程