A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Eagle   /  2014-11-1 22:12  /  2706 人查看  /  27 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Eagle 高级黑马 2014-11-3 08:02:43
21#
feng_0207 发表于 2014-11-2 12:34
试一下这个
DecimalFormat df2 = new DecimalFormat("0.00");
共同探讨。

现在基础还没有学到。学习了
回复 使用道具 举报
Eagle 高级黑马 2014-11-3 08:06:17
22#
戏言丶 发表于 2014-11-2 15:04
加上String result = String.format("%.2f",d);输出result就是保留两位小树

理解了。。原来如此。。。哈哈。哥们聪明啊。顶一个
回复 使用道具 举报
Eagle 高级黑马 2014-11-3 08:10:15
23#
戏言丶 发表于 2014-11-2 15:04
加上String result = String.format("%.2f",d);输出result就是保留两位小树

还是不行的。不知道为啥。
  1. {
  2.         public static void main(String[] args)
  3.         {
  4.                 double d = 12.3546;
  5.                 int x =(int)d*100;
  6.                 double y = x/100;
  7.                 sop(y);
  8.                 String result = String.format("%.2f",y);
  9.                 sop(result);
复制代码


运行结果:
E:\java\day18>java MathTest
12.0
12.00
回复 使用道具 举报
Eagle 高级黑马 2014-11-3 08:20:57
24#
feng_0207 发表于 2014-11-1 23:25
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。
符号含义:
  0 一个数字

用了一下,感觉不错,。呵呵。谢谢了。
回复 使用道具 举报
Eagle 发表于 2014-11-3 08:10
还是不行的。不知道为啥。

首先,你*100转成int类型的时候就错了,应该是int x = (int)(d*100);如果像你那样的话是先把d转成int再*100,这样就将后面的小数全舍去了。然后,你/100的时候应该先把x转成double类型,即double y = (double)x/100;否则x/100时x为int类型得到的会是一个int类型,然后才自动转为double类型。
回复 使用道具 举报
Eagle 高级黑马 2014-11-3 12:47:16
26#
戏言丶 发表于 2014-11-3 11:20
首先,你*100转成int类型的时候就错了,应该是int x = (int)(d*100);如果像你那样的话是先把d转成int再*1 ...

额。原来如此。。呵呵,谢谢了,这次能行了。
回复 使用道具 举报
还没学到的话 可以先自己写个土办法
  1. public class Test {
  2.         public static void main(String[] args)
  3.         {
  4.                 double d = 3.1415926;
  5.                 d = (double)(int)((d+0.005)*100)/100;
  6.                 System.out.println(d);
  7.         }     
  8. }
复制代码
回复 使用道具 举报
我当初就是*100取整,再除100double强转即可了!
不过在这里受教了,确实没想到能够用正则表达式!
还有那个DecimalFormat类,我连听都没听过
printf这个也是第一次听...
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马