2010-08-30 78 views
9
Float sum = new Float(300); // always somehow calculated 
DecimalFormat df = new DecimalFormat("#.#"); 
String s = df.format(sum/3); // prints 100, I want 100.0 
s = df.format(301/3); // pritns 100.3 which is correct 

结果应该总是被格式化为1位十进制palce,怎么做?如何在使用DecimalFormat时始终显示小数部分?

回答

31

变化

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

DecimalFormat df = new DecimalFormat("#.0"); 

基本上,0表示 “总是显示在这个位置中的数字”,其中,a#是指“显示数字在此位置,除非它是零“。

+0

thanx,工作,我现在明白了... – Xorty 2010-08-30 15:12:30

+0

btw如果结果是0和格式是(“#.0”)的结果将是没有什么?我应该使用(“0.0”)吗? – Xorty 2010-08-30 15:14:04

+0

如果结果为0,那么你会得到.0。如果你总是想要0.0,那么你应该改变它(“0.0”); – CoolBeans 2010-08-30 15:17:42

6

你可以阅读关于模式here。改变下面的行应该做的伎俩。

DecimalFormat df = new DecimalFormat("#.0");