网站首页 > java教程 正文
今天聊下,java基础里,关于数字计算的一个常用类Math,这个类为我们提供了丰富的API,今天结合在项目过程中的遇到的坑来讲解一下。
Math很友好的为我们提供了一个常量,比如PI,E等,并且还为我们提供了一些集合函数,比如sin,cos等。
这些在实际项目中可能用到的比较少,今天的主角是ceil和floor两个方法。
先来看一段代码
public static void main(String[] args) { System.out.println(Math.ceil(10 / 3)); System.out.println(Math.ceil(10.0 / 3)); }
你认为两个结果是否是一样的呢?
很简单,运行一下便可以知道。
答案如下:
3.0
4.0
你是不是觉着也很诧异。
我们知道,如果是整数的除法会强转成整数,像代码中这种除不近的只会取整数位,舍弃小数位。如果是浮点数的话,则会按照浮点点数来取,保留小数位,精度按照double类型的精度保留。
代码如下 public static double ceil(double a) { return StrictMath.ceil(a); // default impl. delegates to StrictMath }
10/3 的结果为:3
10.0 / 3 的结果为:3.3333333333333335
至于为什么会是这样,从上面代码中可以看出,参数类型是double,也就是计算完成后,会强转成double类型,3编程3.0,向上取整也是3。
3.33向上取整的话则为4.0,按照浮点数来保存。
floor的结果其实跟上面是一样,就不在详细分析。希望初学者有所帮助
猜你喜欢
- 2024-10-11 SpringBoot整合Nacos配置中心加载原理二
- 2024-10-11 Java核心修饰符——abstract修饰符与抽象类、抽象方法
- 2024-10-11 绝对的JAVA面试干货(java juc 面试)
- 2024-10-11 Java面试集合(三)-1(基础篇java集合面试专用)
- 2024-10-11 Java之路-10 API、Scanner类、Random类、Math类
- 2024-10-11 JAVA面试基础知识点(java面试必背)
- 2024-10-11 java面试题及答案2022,java2022最新面试题及答案
- 2024-10-11 java向上转型和向下转型(java向上转型调用的是子类还是父类属性)
- 2024-10-11 「Java基础11」常用API(java基础知识点整理汇总)
- 2024-10-11 java基础总结(java基础总结心得)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)