import java.math.BigDecimal; 

import java.text.DecimalFormat;

public class TestGetInt{ 

public static void main(String[] args){ 

   double i=2, j=2.1, k=2.5, m=2.9; 

   System.out.println("舍掉小数取整:Math.floor(2)=" + (int)Math.floor(i)); 

   System.out.println("舍掉小数取整:Math.floor(2.1)=" + (int)Math.floor(j)); 

   System.out.println("舍掉小数取整:Math.floor(2.5)=" + (int)Math.floor(k)); 

   System.out.println("舍掉小数取整:Math.floor(2.9)=" + (int)Math.floor(m)); 

                                        

   /* 这段被注释的代码不能正确的实现四舍五入取整 

   System.out.println("四舍五入取整:Math.rint(2)=" + (int)Math.rint(i)); 

   System.out.println("四舍五入取整:Math.rint(2.1)=" + (int)Math.rint(j)); 

   System.out.println("四舍五入取整:Math.rint(2.5)=" + (int)Math.rint(k)); 

   System.out.println("四舍五入取整:Math.rint(2.9)=" + (int)Math.rint(m)); 

   

   System.out.println("四舍五入取整:(2)=" + new DecimalFormat("0").format(i)); 

   System.out.println("四舍五入取整:(2.1)=" + new DecimalFormat("0").format(i)); 

   System.out.println("四舍五入取整:(2.5)=" + new DecimalFormat("0").format(i)); 

   System.out.println("四舍五入取整:(2.9)=" + new DecimalFormat("0").format(i)); 

   */ 

   

   System.out.println("四舍五入取整:(2)=" + new BigDecimal("2").setScale(0, BigDecimal.ROUND_HALF_UP)); 

   System.out.println("四舍五入取整:(2.1)=" + new BigDecimal("2.1").setScale(0, BigDecimal.ROUND_HALF_UP)); 

   System.out.println("四舍五入取整:(2.5)=" + new BigDecimal("2.5").setScale(0, BigDecimal.ROUND_HALF_UP)); 

   System.out.println("四舍五入取整:(2.9)=" + new BigDecimal("2.9").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("凑整:Math.ceil(2)=" + (int)Math.ceil(i)); 

   System.out.println("凑整:Math.ceil(2.1)=" + (int)Math.ceil(j)); 

   System.out.println("凑整:Math.ceil(2.5)=" + (int)Math.ceil(k)); 

   System.out.println("凑整:Math.ceil(2.9)=" + (int)Math.ceil(m));

System.out.println("舍掉小数取整:Math.floor(-2)=" + (int)Math.floor(-i)); 

   System.out.println("舍掉小数取整:Math.floor(-2.1)=" + (int)Math.floor(-j)); 

   System.out.println("舍掉小数取整:Math.floor(-2.5)=" + (int)Math.floor(-k)); 

   System.out.println("舍掉小数取整:Math.floor(-2.9)=" + (int)Math.floor(-m)); 

   

   System.out.println("四舍五入取整:(-2)=" + new BigDecimal("-2").setScale(0, BigDecimal.ROUND_HALF_UP)); 

   System.out.println("四舍五入取整:(-2.1)=" + new BigDecimal("-2.1").setScale(0, BigDecimal.ROUND_HALF_UP)); 

   System.out.println("四舍五入取整:(-2.5)=" + new BigDecimal("-2.5").setScale(0, BigDecimal.ROUND_HALF_UP)); 

   System.out.println("四舍五入取整:(-2.9)=" + new BigDecimal("-2.9").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("凑整:Math.ceil(-2)=" + (int)Math.ceil(-i)); 

   System.out.println("凑整:Math.ceil(-2.1)=" + (int)Math.ceil(-j)); 

   System.out.println("凑整:Math.ceil(-2.5)=" + (int)Math.ceil(-k)); 

   System.out.println("凑整:Math.ceil(-2.9)=" + (int)Math.ceil(-m)); 

   } 

}

//_____________________________

舍掉小?取整:Math.floor(2)=2

舍掉小?取整:Math.floor(2.1)=2

舍掉小?取整:Math.floor(2.5)=2

舍掉小?取整:Math.floor(2.9)=2

四舍五入取整:(2)=2

四舍五入取整:(2.1)=2

四舍五入取整:(2.5)=3

四舍五入取整:(2.9)=3

?整:Math.ceil(2)=2

?整:Math.ceil(2.1)=3

?整:Math.ceil(2.5)=3

?整:Math.ceil(2.9)=3

舍掉小?取整:Math.floor(-2)=-2

舍掉小?取整:Math.floor(-2.1)=-3

舍掉小?取整:Math.floor(-2.5)=-3

舍掉小?取整:Math.floor(-2.9)=-3

四舍五入取整:(-2)=-2

四舍五入取整:(-2.1)=-2

四舍五入取整:(-2.5)=-3

四舍五入取整:(-2.9)=-3

?整:Math.ceil(-2)=-2

?整:Math.ceil(-2.1)=-2

?整:Math.ceil(-2.5)=-2

?整:Math.ceil(-2.9)=-2

===================================================

BigDecimal b = new BigDecimal(9.655 );

        //double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

        double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println("f1=" + f1);//f1=9.65

        BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);

        System.out.println("mData=" + mData);//mData=9.66

public BigDecimal(double val)
将 double 转换为 BigDecimal,后者是 double 的二进制浮点值准确的十进制表示形式。返回的 BigDecimal 的标度是使 (10scale ×
val)
为整数的最小值。

注:

  1. 此构造方法的结果有一定的不可预知性。有人可能认为在 Java 中写入 new BigDecimal(0.1) 所创建的 BigDecimal 正好等于 0.1(非标度值 1,其标度为 1),但是它实际上等于 0.1000000000000000055511151231257827021181583404541015625。这是因为
    0.1 无法准确地表示为 double(或者说对于该情况,不能表示为任何有限长度的二进制小数)。这样,传入到构造方法的值不会正好等于 0.1(虽然表面上等于该值)。
  2. 另一方面,String 构造方法是完全可预知的:写入 new BigDecimal("0.1") 将创建一个 BigDecimal,它正好 等于预期的
    0.1。因此,比较而言,通常建议优先使用 String 构造方法
  3. 当 double 必须用作 BigDecimal 的源时,请注意,此构造方法提供了一个准确转换;它不提供与以下操作相同的结果:先使用 Double.toString(double) 方法,然后使用 BigDecimal(String) 构造方法,将 double 转换为 String。要获取该结果,请使用 static valueOf(double) 方法。

Java中取整和四舍五入的更多相关文章

  1. sql 中取整,四舍五入取整,向下取整,向上取整。

    SELECT round(52.45, 0) AS round4, round(52.54, 0) AS round5, round(52.45, 1) AS round41, round(52.54 ...

  2. JAVA取整以及四舍五入

    JAVA取整以及四舍五入 import java.math.BigDecimal; //引入这个包 public class Test { public static void main(String ...

  3. Java中取小数点后两位(四种方法)

    摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法)   一 Long是长整型,怎么有小数,是double吧     java.text.D ...

  4. AVA取整以及四舍五入

    AVA取整以及四舍五入 import java.math.BigDecimal; public class Test { public static void main(String[] args) ...

  5. js 向上取整、向下取整、四舍五入

      js 向上取整.向下取整.四舍五入 CreateTime--2018年4月14日11:31:21 Author:Marydon // 1.只保留整数部分(丢弃小数部分) parseInt(5.12 ...

  6. js取整、四舍五入等数学函数

    js只保留整数,向上取整,四舍五入,向下取整等函数1.丢弃小数部分,保留整数部分parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math. ...

  7. Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明

    Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明 FLOOR——对给定的数字取整数位SQL> select floor(2345.67) from dua ...

  8. 问题:oracle floor;结果:Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明

    Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明 (2011-04-06 16:10:35) 转载▼ 标签: 谈 分类: 渐行渐远 FLOOR——对给定的数字取 ...

  9. python 向下取整,向上取整,四舍五入

    # python 向下取整 floor 向上取整ceil 四舍五入 round import math num=3.1415926 # 向上取整 print(math.ceil(num)) # 向下取 ...

随机推荐

  1. qplot()函数的详细用法

    qplot()函数的详细用法: library(ggplot2) # 测试数据集,ggplot2内置的钻石数据qplot(carat, price, data = diamonds)dsmall &l ...

  2. Forward Proxy vs Reverse Proxy

    Overview We've talked about reverse proxy servers and how they can really be good at protecting the ...

  3. jQuery动态网址标签

    在线演示 本地下载

  4. Address already in use: make_sock: could not bind to address [::]:80

    **********************************************************处理办法:# ps -aux | grep httpWarning: bad syn ...

  5. Mac 使用技巧分享

    1. 快捷键开启speech功能: System Preferences -> Ditaction&Speech ->Text to Speech ->Select 'Spe ...

  6. VMware Workstation 12 增加磁盘容量 Windows Server 2012 系统

    1.安装虚拟机后,检查C盘容量大小,发现C盘现在的空间是59.9GB,如下图: 2.使用window+R键,出现运行窗口,输入‘cmd’——>‘cd C:\Program Files (x86) ...

  7. python测试函数的使用时间

    1. 使用装饰器来衡量函数执行时间 有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果:(代码通用3.x) import time from functools import wra ...

  8. Treflection02_getMethods()_getMethod()

    1. package reflectionZ; import java.lang.reflect.Constructor; import java.lang.reflect.Method; impor ...

  9. java PreparedStatement和statement的区别

    1. PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象.2.作为 St ...

  10. Python 文本相似度分析

    环境 Anaconda3 Python 3.6, Window 64bit 目的 利用 jieba 进行分词,关键词提取 利用gensim下面的corpora,models,similarities ...