黑马程序员技术交流社区

标题: 给定一个小数 ,保留小数点后两位怎么做 [打印本页]

作者: liquid1993    时间: 2015-5-7 22:46
标题: 给定一个小数 ,保留小数点后两位怎么做
以下是我写的代码,有点问题,正常的可以算出来
  1. import java.util.*;
  2. class  MathDemo
  3. {
  4.         public static void main(String[] args)
  5.         {

  6.                 //给定一个小数,保留小数点最后两位
  7.                 baoliu(-12.000);
  8.         }
  9.         public static void baoliu(double d)
  10.         {
  11.                 int x = (int)d;           //将输入的小数取整
  12.                 double m = d -x;      //将输入的小数取小数部分
  13.                 m = m*100;             //将小数部分*100
  14.                 m = Math.round(m);   //  对小数*100四舍五入
  15.                 m = x+m/100;       //取整部分+小数四舍五入部分
  16.                 sop(m);
  17.         }
  18.         public static void sop(Object obj)
  19.         {
  20.                 System.out.println(obj);
  21.         }
  22. }
复制代码

  可是输入12.000时 输出的时12.0  而不是12.00  怎么样修改可以解决问题 求各位大神解决!

作者: 黄冬    时间: 2015-5-7 23:05
首先,我觉得代码没必要写那么复杂吧,这样就行;不过我也没能解决你的问题,因为得出的结果是一样的,一起等大神吧。


作者: ZSMAN    时间: 2015-5-7 23:18
本帖最后由 ZSMAN 于 2015-5-7 23:27 编辑

        double d = 3.1415926;
        String value = String .format("%.2f",d);        d=Double.parseDouble(value);

作者: 邓士林    时间: 2015-5-7 23:29
对输出小数位数判断
作者: jinlong0999    时间: 2015-5-7 23:40
2楼给出的是字符串格式化么
作者: liquid1993    时间: 2015-5-8 13:46
ZSMAN 发表于 2015-5-7 23:18
double d = 3.1415926;
        String value = String .format("%.2f",d);        d=Double.parse ...

这个小数点控制 我在C++里面用过,那时候写ACM的时候写过  没找到java里面的这个类
作者: liquid1993    时间: 2015-5-8 13:47
ZSMAN 发表于 2015-5-7 23:18
double d = 3.1415926;
        String value = String .format("%.2f",d);        d=Double.parse ...

这个小数点控制 我在C++里面用过,那时候写ACM的时候写过  没找到java里面的这个类。
作者: ZSMAN    时间: 2015-5-8 14:16
liquid1993 发表于 2015-5-8 13:47
这个小数点控制 我在C++里面用过,那时候写ACM的时候写过  没找到java里面的这个类。 ...

什么类?String类就够了~String里面有一个static String format(String format, Object... args)  
作者: 忆墨    时间: 2015-5-8 14:28
用正则表达萌萌哒
作者: liquid1993    时间: 2015-5-8 22:36
忆墨 发表于 2015-5-8 14:28
用正则表达萌萌哒

只用过python的正则表达式。。。而且基本忘啦。。
作者: dengxing    时间: 2015-5-8 23:13
double m 结果应该是0.0吧
作者: liquid1993    时间: 2015-5-9 19:50
dengxing 发表于 2015-5-8 23:13
double m 结果应该是0.0吧

对啊  所以在想 保留两位小数怎么办




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