Java中Math类的几个四舍五入方法的区别
JAVA取整以及四舍五入
下面来介绍将小数值舍入为整数的几个方法:Math.ceil()、Math.floor()和Math.round()。 这三个方法分别遵循下列舍入规则:
Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;
Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;
Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则)。
下面来看几个例子:
Math.ceil(25.9) // Math.ceil(25.5) // Math.ceil(25.1) // Math.ceil(25.0)
// Math.round(25.9) // Math.round(25.5) // Math.round(25.1) // Math.floor(25.9) // Math.floor(25.5) // Math.floor(25.1) //
import java.math.BigDecimal; //引入这个包 public class Test {
public static void main(String[] args) { double i = 3.856; // 舍掉小数取整
System.out.println("舍掉小数取整:Math.floor(3.856)=" + (int) Math.floor(i)); // 四舍五入取整
System.out.println("四舍五入取整:(3.856)="
+ new BigDecimal(i).setScale(0, BigDecimal.ROUND_HALF_UP)); // 四舍五入保留两位小数
System.out.println("四舍五入取整:(3.856)="
+ new BigDecimal(i).setScale(2, BigDecimal.ROUND_HALF_UP)); // 凑整,取上限
System.out.println("凑整:Math.ceil(3.856)=" + (int) Math.ceil(i)); // 舍掉小数取整
System.out.println("舍掉小数取整:Math.floor(-3.856)=" + (int) Math.floor(-i));
// 四舍五入取整
System.out.println("四舍五入取整:(-3.856)="
+ new BigDecimal(-i).setScale(0, BigDecimal.ROUND_HALF_UP)); // 四舍五入保留两位小数
System.out.println("四舍五入取整:(-3.856)="
+ new BigDecimal(-i).setScale(2, BigDecimal.ROUND_HALF_UP)); // 凑整,取上限
System.out.println("凑整(-3.856)=" + (int) Math.ceil(-i));
} }
Java中Math类的几个四舍五入方法的区别的更多相关文章
- Java中math类的常用函数
Java中math类的常用函数 在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等 只要在源文件的顶部加上下面这行代码就不必在数学方法名和常量名 ...
- java 中 Math类
package cn.liuliu.com; import java.math.BigDecimal; import java.math.BigInteger; /* * 一.Math类? * * 1 ...
- java中Math类
Math类 Math类是一个很有用的数学帮助类,使用也非常简单,这个类比较特殊,首先他和String类一样都是用final修饰,所以不能有子类,还有就是它的构造方法是私有的,也就是我们不能通过new的 ...
- Java中Math类的常用方法
public class MathDemo { public static void main(String args[]){ /** * abs求绝对值 */ System.out.println( ...
- Java中Object类常用的12个方法,你用过几个?
前言 Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的“老祖宗”.Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承所有 Object ...
- java中的类、成员变量、方法的修饰符。
http://blog.sina.com.cn/s/blog_7ffb8dd501011alw.html http://www.cnblogs.com/lixiaolun/p/4311727.html
- Java-Runoob:Java Number & Math 类
ylbtech-Java-Runoob:Java Number & Math 类 1.返回顶部 1. Java Number & Math 类 一般地,当需要使用数字的时候,我们通常使 ...
- Java中ArrayList类详解
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- java基础-Math类常用方法介绍
java基础-Math类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Math类概念 Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函 ...
随机推荐
- iOS 发光字流水
{ CAGradientLayer *_gradientLayer; NSInteger count; } - (void)addLabel{ // 创建UILabel UILabel *label ...
- CentOS 6.9/7通过yum安装指定版本的Nginx
说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql nginx可以知道全部文件的地方等等. Nginx(1.12.2) 一.安装和配置 1.安装 # rp ...
- debian8上安装pyspider - pyspider中文文档 - pyspider中文网
debian8上安装pyspider - pyspider中文文档 - pyspider中文网 #apt-get install python python-dev python-distribu ...
- Java-方法的覆写
class parent { void print() { System.out.println("parent"); } } class child extends p ...
- 【spring cloud】spring boot2.x下 使用feign,注解@EnableFeignClients 找不到的解决方法
spring boot2.x下 使用feign,注解@EnableFeignClients 找不到的解决方法 在spring boot1.x下,使用注解@EnableFeignClients,jar包 ...
- UIView独占响应事件
exclusiveTouch A Boolean value that indicates whether the receiver handles touch events exclusively. ...
- 第十二章 Openwrt无法识别2.0 USB 盘
今天新的U盘不能识别,还以为是U盘本身的问题,原来是缺少 kmod-usb-storage kmod-usb-storage-extras 这两个软件包. 软件包安装后重启便可识别.
- 2013ACM-ICPC杭州赛区全国邀请赛——Random Walk
pid=4579" style="background-color:rgb(51,255,51)">题目链接 题意: n个点.依照题中给的公式能够求出随意两个点转移 ...
- JVM内存参数详解以及配置调优
基本概念:PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域He ...
- JNI字段描述符
“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码.这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors).一个数组 ...