Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26425
  • 博文数量: 41
  • 博客积分: 185
  • 博客等级: 入伍新兵
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-20 13:48
文章分类

全部博文(41)

文章存档

2013年(20)

2012年(21)

我的朋友
最近访客

分类: Java

2013-02-01 23:00:36

javadouble类型变量保留小数问题大体分两种情况:

(一):小数点后面位数过长,四舍五入保留指定位数:

可以用以下代码实现:

public class TestDemo {

 public static void main(String[] args) {

     double a=15.32743859;

     double b=Math.round(a*10000)/10000.0000;//保留四位小数

     System.out.println(b); 

 }

}

想保留n位小数,就Math.round(a*10n次方)/10n次方.n0

(二):如果小数点后末位为0myeclipse中不予显示,如

      double a=15.80;

      System.out.print(a);

则在控制台中输出的结果是15.8

而我们有时候希望把百分位的0也显示出来,比如说显示商品价格,一般是显示两位小数,如果商品价格是15.8,也显示为15.80,如果商品价格是15,也显示为15.00,这种情况,用(一)中的方法便无法实现了,那应该如何实现呢?

请看下面代码:

import java.text.DecimalFormat;

public class TestDemo {

 public static void main(String[] args) {

  DecimalFormat df =new DecimalFormat("#####0.00");

     double a=15;

     System.out.println(df.format(a)); 

 }

}

    这样,即使在我们的double类型变量是15,显示出来的也是15.00。当然,我们希望显示多少位就在"#####0.00"的点后面去控制0的个数便可以。如果是"#####0"的话,那我们的double变量无论是15.0或是15.00都能显示成15,而如果我们的double变量是15.60,则显示为16,即这种方法也可以实现四舍五入。它包含了(一)的功能,所以我们遇到两种情况都可以选择这种方法。

<小数点"."前面"#"或"0"的个数表示格式化保留的最少整数位,"#":不够就空着,"0":不够就用0代替,小数点后面"0"表示格式化保留的最多小数位。>

阅读(235) | 评论(0) | 转发(0) |
0

上一篇:年月日问题

下一篇:没有了

给主人留下些什么吧!~~