java取整,四舍五入,截取,进位方法整理。

JAVA中常用的取整,四舍五入,截取,小数直接进位等方法整理。以便加深记忆。

直接贴上代码:

/*
 * 文件名:CastingNumbers.java
 * 版权:Copyright by www.huawei.com
 * 描述:java取整,四舍五入,截取,进位方法整理。
 * 修改人:gaoxiaohan
 * 修改时间:2014-10-13
 * 跟踪单号:
 * 修改单号:
 * 修改内容:
 */

package com.myoursky.j2se;

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class CastingNumbers {

	
	public static void main(String[] args) {
		double num1 = 2;
		double num2 = 2.3;
		double num3 = 2.5;
		double num4 = 2.8;
		double num5 = -2;
		double num6 = -2.3;
		double num7 = -2.5;
		double num8 = -2.8;
		
        //int取整
		System.out.println("===int 取整===");
		System.out.println((int)num1);
		System.out.println((int)num2);
		System.out.println((int)num3);
		System.out.println((int)num4);
		System.out.println((int)num5);
		System.out.println((int)num6);
		System.out.println((int)num7);
		System.out.println((int)num8);
		
		//Math.floor,floor地板的意思,就是返回小的值
		System.out.println("\n===Math.floor===");
		System.out.println(Math.floor(num1));
		System.out.println(Math.floor(num2));
		System.out.println(Math.floor(num3));
		System.out.println(Math.floor(num4));
		System.out.println(Math.floor(num5));
		System.out.println(Math.floor(num6));
		System.out.println(Math.floor(num7));
		System.out.println(Math.floor(num8));
		
		//Math.ceil,ceil天花板的意思,就是返回大的值
		System.out.println("\n===Math.ceil===");
		System.out.println(Math.ceil(num1));
		System.out.println(Math.ceil(num2));
		System.out.println(Math.ceil(num3));
		System.out.println(Math.ceil(num4));
		System.out.println(Math.ceil(num5));
		System.out.println(Math.ceil(num6));
		System.out.println(Math.ceil(num7));
		System.out.println(Math.ceil(num8));
		
		//Math.rint 四舍五入,返回double值
		//注意.5的时候会取偶数
		System.out.println("\n===Math.rint===");
		System.out.println(Math.rint(num1));
		System.out.println(Math.rint(num2));
		System.out.println(Math.rint(num3));
		System.out.println(Math.rint(num4));
		System.out.println(Math.rint(num5));
		System.out.println(Math.rint(num6));
		System.out.println(Math.rint(num7));
		System.out.println(Math.rint(num8));		
		
		//Math.round,float时返回int值,double时返回long值
		System.out.println("\n===Math.round===");
		System.out.println(Math.round(num1));
		System.out.println(Math.round(num2));
		System.out.println(Math.round(num3));
		System.out.println(Math.round(num4));
		System.out.println(Math.round(num5));
		System.out.println(Math.round(num6));
		System.out.println(Math.round(num7));
		System.out.println(Math.round(num8));
		
		//DecimalFormat
		//注意.5的时候会取偶数
		System.out.println("\n===DecimalFormat===");
		System.out.println(new DecimalFormat("0").format(num1));
		System.out.println(new DecimalFormat("0").format(num2));
		System.out.println(new DecimalFormat("0").format(num3));
		System.out.println(new DecimalFormat("0").format(num4));
		System.out.println(new DecimalFormat("0").format(num5));
		System.out.println(new DecimalFormat("0").format(num6));
		System.out.println(new DecimalFormat("0").format(num7));
		System.out.println(new DecimalFormat("0").format(num8));
		
		//setScale(0, BigDecimal.ROUND_HALF_UP))
		System.out.println("\n===setScale(0, BigDecimal.ROUND_HALF_UP))===");
		System.out.println(new BigDecimal(num1).setScale(0, BigDecimal.ROUND_HALF_UP));
		System.out.println(new BigDecimal(num2).setScale(0, BigDecimal.ROUND_HALF_UP));
		System.out.println(new BigDecimal(num3).setScale(0, BigDecimal.ROUND_HALF_UP));
		System.out.println(new BigDecimal(num4).setScale(0, BigDecimal.ROUND_HALF_UP));
		System.out.println(new BigDecimal(num5).setScale(0, BigDecimal.ROUND_HALF_UP));
		System.out.println(new BigDecimal(num6).setScale(0, BigDecimal.ROUND_HALF_UP));
		System.out.println(new BigDecimal(num7).setScale(0, BigDecimal.ROUND_HALF_UP));
		System.out.println(new BigDecimal(num8).setScale(0, BigDecimal.ROUND_HALF_UP));
		
		//abs求绝对值
		System.out.println("\n===abs求绝对值===");
		System.out.println(Math.abs(num3));
		System.out.println(Math.abs(num7));

	}

}

代码输出结果:

===int 取整===
2
2
2
2
-2
-2
-2
-2

===Math.floor===
2.0
2.0
2.0
2.0
-2.0
-3.0
-3.0
-3.0

===Math.ceil===
2.0
3.0
3.0
3.0
-2.0
-2.0
-2.0
-2.0

===Math.rint===
2.0
2.0
2.0
3.0
-2.0
-2.0
-2.0
-3.0

===Math.round===
2
2
3
3
-2
-2
-2
-3

===DecimalFormat===
2
2
2
3
-2
-2
-2
-3

===setScale(0, BigDecimal.ROUND_HALF_UP))===
2
2
3
3
-2
-2
-3
-3

===abs求绝对值===
2.5
2.5

注意:

1.如果通过Math.floor取整,需要用int进行强制类型转换。

2.BigDecimal的setScale方法,通过设置第二个参数,也可以实现取整,进位等功能。具体可以查看API。





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值