黑马程序员技术交流社区
标题:
java中double类型变量保留小数问题
[打印本页]
作者:
李希鹏
时间:
2013-4-18 20:49
标题:
java中double类型变量保留小数问题
java中double类型变量保留小数问题大体分两种情况:
(一):小数点后面位数过长,四舍五入保留指定位数:
可以用以下代码实现:
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*10的n次方)/10的n次方.n个0。
(二):如果小数点后末位为0,myeclipse中不予显示,如
double a=15.80;
System.out.print(a);
则在控制台中输出的结果是15.8。
而我们有时候希望把百分位的0也显示出来,比如说显示商品价格,一般是显示两位小数,如果商品价格是15.8,也显示为15.80,如果商品价格是15,也显示为15.00,这种情况,用(一)中的方法便无法实现了,那应该如何实现呢?
请看下面代码:
import java.text.DecimalFormat;
/**
* 实现double类型变量显示为指定位数
*/
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,即这种方法也可以实现四舍五入。
即包含了(一)的功能,所以我们遇到两种情况都可以选择这种方法。
作者:
黑马-张明
时间:
2013-4-18 21:01
地址ht tp://blog.sina.com.cn/s/blog_8579012301014tku.html
作者:
黑马-雷钊
时间:
2013-4-18 21:08
同学,你好。
谢谢分享了哦。
不过要提醒下你哦。
这个帖子是提问帖。你既然知道答案再发出来就失去帖子的意义了。
不过还是谢谢分享。最好赶快把帖子设为已解决吧
作者:
李希鹏
时间:
2013-4-18 21:16
黑马-雷钊 发表于 2013-4-18 21:08
同学,你好。
谢谢分享了哦。
不过要提醒下你哦。
不是提问帖呀·····刚才回复别人的时候想起来电脑里存着这个东西就贴出来了
作者:
黑马-雷钊
时间:
2013-4-18 21:29
嘿嘿 同学加个好友吧 一起交流!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2