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. 反射_获取字段的Description信息

    var memInfo = enumType.GetType().GetMember(enumType.ToString()); var attributes = memInfo[0].GetCust ...

  2. 使用Python实现基于图像识别的iOS自动化测试

    相对于Android来说,iOS比较封闭.这一点,在设计和评估自动化测试方案的时候感觉尤其强烈.iOS平台上没有特别好用的自动化测试工具.苹果针对iOS提供了UI Automation的Instrum ...

  3. CSS3:布局display属性的flex(弹性布局)

    CSS3:布局display属性的flex(弹性布局) 一.简介 Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.设为Flex布局以后, ...

  4. ios 中实现storyboard 与xib 之间的切换

    1,跳转到xib 假设有一个按钮,这个按钮就是实现跳转的,那么在这个按钮的点击事件中,代码可以这样写. AViewController *a1= [[AViewController alloc]ini ...

  5. zabbix监控实现电话报警OneAlert

    http://www.ttlsa.com/zabbix/zabbix-onealert-msg-compress/

  6. HashMap和ConcurrentHashMap和HashTable的底层原理与剖析

    HashMap  可以允许key为null,value为null,但HashMap的是线程不安全的  HashMap 底层是数组 + 链表的数据结构 在jdk 1.7 中 map集合中的每一项都是一个 ...

  7. 运行【guns】spring boot 的四种方式

    IDE 运行 运行带有main方法类 用mvn运行Spring-boot项目 在父项目中运行 mvn clean mvn install 在主项目中运行 mvn spring-boot:run 用JA ...

  8. spring mvc:文本框

    采用:<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> ...

  9. 滚动条——WPF ScrollViewer的应用

    WPF ScrollViewer的应用   我们知道在一个限定高的窗体和容器中,想要把内容显示完是有些问题的,这个时候我们就要使用类似于浏览器的那个滚动条的效果了,在wpf中也同样如此,最近就碰到了这 ...

  10. lightoj1234调和级数+欧拉常数

    数据比较小时直接算,数据比较大时用公式1+1/2+...+1/n=inn+C+1/(2*n)   ,C是欧拉常数0.5772156649 刚开始用的这个1+1/2+...+1/n=in(n+1)+C, ...