首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA中统制double和float的精度 (转)

2012-12-28 
JAVA中控制double和float的精度(转)/**   *?测试用的main方法.   *   *?@param?argc   *?运行参数.   */  

JAVA中控制double和float的精度 (转)

/**
  *?测试用的main方法.
  *
  *?@param?argc
  *?运行参数.
  */
  public?static?void?main(String[]?argc)?{
  //下面都以保留2位小数为例
  //ROUND_UP
  //只要第2位后面存在大于0的小数,则第2位就+1
  System.out.println(round(12.3401,2,BigDecimal.ROUND_UP));//12.35
  System.out.println(round(-12.3401,2,BigDecimal.ROUND_UP));//-12.35
  //ROUND_DOWN
  //与ROUND_UP相反
  //直接舍弃第2位后面的所有小数
  System.out.println(round(12.349,2,BigDecimal.ROUND_DOWN));//12.34
  System.out.println(round(-12.349,2,BigDecimal.ROUND_DOWN));//-12.34
  //ROUND_CEILING
  //如果数字>0?则和ROUND_UP作用一样
  //如果数字<0?则和ROUND_DOWN作用一样
  System.out.println(round(12.3401,2,BigDecimal.ROUND_CEILING));//12.35
  System.out.println(round(-12.349,2,BigDecimal.ROUND_CEILING));//-12.34
  //ROUND_FLOOR
  //如果数字>0?则和ROUND_DOWN作用一样
  //如果数字<0?则和ROUND_UP作用一样
  System.out.println(round(12.349,2,BigDecimal.ROUND_FLOOR));//12.34
  System.out.println(round(-12.3401,2,BigDecimal.ROUND_FLOOR));//-12.35
  //ROUND_HALF_UP?[这种方法最常用]
  //如果第3位数字>=5,则第2位数字+1
  //备注:只看第3位数字的值,不会考虑第3位之后的小数的
  System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_UP));//12.35
  System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_UP));//12.34
  System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_UP));//-12.35
  System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_UP));//-12.34
  //ROUND_HALF_DOWN
  //如果第3位数字>=5,则做ROUND_UP
  //如果第3位数字<5,则做ROUND_DOWN
  System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_DOWN));//12.35
  System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_DOWN));//12.34
  System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_DOWN));//-12.35
  System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_DOWN));//-12.34
  //ROUND_HALF_EVEN
  //如果第3位是偶数,则做ROUND_HALF_DOWN
  //如果第3位是奇数,则做ROUND_HALF_UP
  System.out.println(round(12.346,2,BigDecimal.ROUND_HALF_EVEN));//12.35
  System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_EVEN));//12.35
  }
  }

热点排行