DecimalFormat df = new DecimalFormat("0.00");
就是设置一个格式化字符串形式。
xd=2/(1+2);
算出来的值为0
df.format(xd)
用format方法把0转换成你定义的字符串形式,即0.00
已格式化的数字字符串!!!
2 是整型
3 也是整形
所以 2/3 的结果是整形
所以是 0
public class tt {
public static void main(String[] args){
float xb = 0;
xb = 2/3;
System.out.println(xb);
xb = (float)2/3;
System.out.println(xb);
}
}
前面加个 float 就行了
xd=2/(1+2);
因为2为整型, (1+2)的结果也是整型, 两个整型相除, 结果还是整型,小数部分会忽略,所以xd=0,而不是0.6666666666667,无论xd是否为浮点型,结果都一样
故,df.format(xd)等于0.00
(复制一楼的 不好意思.)
就想补充一点.要想xd不是整形..只要写成xd=2.0/(1.0+2.0);
xd=2/(1+2);
因为2为整型, (1+2)的结果也是整型, 两个整型相除, 结果还是整型,小数部分会忽略,所以xd=0,而不是0.6666666666667,无论xd是否为浮点型,结果都一样
故,df.format(xd)等于0.00
两个整型变量做除法运算得到的还是一个整型变量,2/3余数是2,所以答案应该是零了啦。