Java Math.round(),Math.ceil(),Math.floor()的区别详解

 更新时间:2020年08月27日 09:36:50   作者:瑞 新  
这篇文章主要介绍了Java Math.round(),Math.ceil(),Math.floor()的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Math.round() “四舍五入”,

小数点后第一位<5

  • 正数:Math.round(11.46)=11
  • 负数:Math.round(-11.46)=-11

小数点后第一位>5

  • 正数:Math.round(11.68)=12
  • 负数:Math.round(-11.68)=-12

小数点后第一位=5

  • 正数:Math.round(11.5)=12
  • 负数:Math.round(-11.5)=-11
 double d = 3.1415926;
 double d2 = 18.58;
 double d3 = -15.23;
 double d4 = -16.85;
 long round1 = Math.round(d); // 结果 3
 long round2 = Math.round(d2); // 结果 19
 long round3 = Math.round(d3); // 结果 -15
 long round4 = Math.round(d4); // 结果 -17

Math.ceil() “向上取整”, 即小数部分直接舍去,并向正数部分进1

  double d = 3.1415926;
  double d2 = 18.58;
  double d3 = -15.23;
  double d4 = -16.85;
  double d5 = -16.5;
  double d6 = 16.5;
  
  double ceil1 = Math.ceil(d); // 结果 4.0
  double ceil2 = Math.ceil(d2); // 结果 19.0
  double ceil3 = Math.ceil(d3); // 结果 -15.0
  double ceil4 = Math.ceil(d4); // 结果 -16.0
  double ceil5 = Math.ceil(d5); // 结果 -16.0
  double ceil6 = Math.ceil(d6); // 结果 17.0

 【注】该数为小数时,小数部分直接舍去

Math.floor() “向下取整” ,即小数部分直接舍去

  double d = 3.1415926;
  double d2 = 18.58;
  double d3 = -15.23;
  double d4 = -16.85;
  double d5 = -16.5;
  double d6 = 16.5;
  
  double floor1 = Math.floor(d); // 结果 3.0
  double floor2 = Math.floor(d2); // 结果 18.0
  double floor3 = Math.floor(d3); // 结果 -16.0
  double floor4 = Math.floor(d4); // 结果 -17.0
  double floor5 = Math.floor(d5); // 结果 -17.0
  double floor6 = Math.floor(d6); // 结果 16.0

 【注】 Math.floor()容易出现精度问题,举个最简单例子:

对小数 8.54 保留两位小数(虽然它已经保留了 2 位小数):

Math.floor(8.54*100)/100 // 输出结果为 8.53, 注意是 8.53 而不是 8.54。

所以这种函数慎用。

到此这篇关于Java Math.round(),Math.ceil(),Math.floor()的区别详解的文章就介绍到这了,更多相关Math.round(),Math.ceil(),Math.floor()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

    SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

    本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数据库密码)进行加密,通过引入Jasypt依赖、配置加密密钥、加密敏感信息并测试解密功能,可以提高配置文件的安全性,减少因配置文件泄露导致的安全风险,感兴趣的朋友一起看看吧
    2025-03-03
  • SpringBoot集成Neo4j的详细教程

    SpringBoot集成Neo4j的详细教程

    Spring Boot 提供了对 Neo4j 的良好支持,使得开发者可以更方便地使用图数据库,通过使用 Spring Data Neo4j,开发者可以轻松地进行数据访问、操作以及管理,本文将详细介绍如何在 Spring Boot 应用中集成 Neo4j,需要的朋友可以参考下
    2024-11-11
  • Java多线程 线程同步与死锁

    Java多线程 线程同步与死锁

    这篇文章主要介绍了 Java多线程 线程同步与死锁的相关资料,需要的朋友可以参考下
    2017-07-07
  • 深入理解Spring Cache框架

    深入理解Spring Cache框架

    今天给大家分析一下 Spring 框架本身对这些缓存具体实现的支持和融合。使用 Spring Cache 将大大的减少我们的Spring项目中缓存使用的复杂度,提高代码可读性。本文将从以下几个方面来认识Spring Cache框架。感兴趣的小伙伴们可以参考一下
    2018-11-11
  • SpringBoot+随机盐值+双重MD5实现加密登录

    SpringBoot+随机盐值+双重MD5实现加密登录

    数据加密在很多项目上都可以用到,大部分都会采用MD5进行加密,本文主要介绍了SpringBoot+随机盐值+双重MD5实现加密登录,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Java四种常用线程池的详细介绍

    Java四种常用线程池的详细介绍

    今天小编就为大家分享一篇关于Java四种常用线程池的详细介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 微服务如何通过feign.RequestInterceptor传递参数

    微服务如何通过feign.RequestInterceptor传递参数

    这篇文章主要介绍了微服务如何通过feign.RequestInterceptor传递参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringBoot整合Docker实现一次构建到处运行的操作方法

    SpringBoot整合Docker实现一次构建到处运行的操作方法

    本文讲解的是 SpringBoot 引入容器化技术 Docker 实现一次构建到处运行,包括镜像构建、Docker仓库搭建使用、Docker仓库可视化UI等内容,需要的朋友可以参考下
    2022-10-10
  • JavaFX实现简易时钟效果(一)

    JavaFX实现简易时钟效果(一)

    这篇文章主要为大家详细介绍了JavaFX实现简易时钟效果的第一篇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • java 使用HttpURLConnection发送数据简单实例

    java 使用HttpURLConnection发送数据简单实例

    这篇文章主要介绍了java 使用HttpURLConnection发送数据简单实例的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论