黑马程序员技术交流社区

标题: 给定一个小数,保留该小数的后两位? [打印本页]

作者: nerveva2000    时间: 2014-10-20 10:12
标题: 给定一个小数,保留该小数的后两位?
本帖最后由 nerveva2000 于 2014-10-22 10:05 编辑

如果让大家用Math做,大家怎么做。。。。

作者: 肖建伟    时间: 2014-10-20 11:27
将此数*100,然后Math.round,然后变成double数据,除以100。不知道我这个思路对你有帮助不?
作者: nerveva2000    时间: 2014-10-20 11:52
本帖最后由 nerveva2000 于 2014-10-20 11:54 编辑
肖建伟 发表于 2014-10-20 11:27
将此数*100,然后Math.round,然后变成double数据,除以100。不知道我这个思路对你有帮助不? ...

看了你的指引,这么写,也能得到保留两位小数的结果

不知道这么成这样好  double r=(Math.round(l*100.00)/100.00);
还是这样好点double r=(Math.round(l*100)/(double)100);
或者存个 double x=100; 然后 double r=(Math.round(l*x)x);
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 double l=Math.random();
  6.                 sop(l);
  7.                 double r=(Math.round(l*100.00)/100.00);
  8.                 sop(r);

  9.         }
  10.         public static void sop( Object obj)
  11.         {
  12.                 System.out.println(obj);
  13.         }
  14. }
复制代码


作者: 刘树弘    时间: 2014-10-20 15:14
建议用java.math.BigDecimal做,用setScale() 返回包含指定小数位的数值,toString()把对象转为字符串。doubleValue()将此 BigDecimal 转换为 double。
否则你要考虑舍入方式,操作数为long等情况。
  1.                 String d = "1.23456789";
  2. //                double d = 1.23456789;
  3.                 BigDecimal b = new BigDecimal (d);
  4.                 b = b.setScale(2, java.math.RoundingMode.HALF_EVEN );
  5.                 System.out.println(b);
  6.                 System.out.println(b.doubleValue());
复制代码


作者: nerveva2000    时间: 2014-10-20 16:44
刘树弘 发表于 2014-10-20 15:14
建议用java.math.BigDecimal做,用setScale() 返回包含指定小数位的数值,toString()把对象转为字符串。dou ...

多谢,嗯,查查表,看看这些功能怎么用。
作者: HM2014nuli    时间: 2014-10-20 17:54
感谢分享
作者: mengxiang1993    时间: 2015-2-12 13:05
double b=1.23456;
                int c=(int) (b*100);
                double d=Math.round(c);
                //sop(d);
                sop(d/100);
作者: wangxiaocong    时间: 2015-5-4 15:19
谢谢分享
作者: Zack    时间: 2015-7-14 13:49
我也看到视频中的这个练习,也不会,但是我没看懂你们在讨论乘100是干嘛的,是保留后两位,乘100有什么用呢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2