如题,还有我这样设置DecimalFormat df = new DecimalFormat("0.00");
xd=2/(1+2);
df.format(xd)却等于0.00,这是为什么呢?
关于JAVA程序中2/3=0.0的问题
答案:6 悬赏:0
解决时间 2021-04-28 14:22
- 提问者网友:心裂忍耐
- 2021-04-27 16:33
最佳答案
- 二级知识专家网友:孤伤未赏
- 2021-04-27 16:52
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 就行了
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 就行了
全部回答
- 1楼网友:哭不代表软弱
- 2021-04-27 21:18
xd=2/(1+2);
因为2为整型, (1+2)的结果也是整型, 两个整型相除, 结果还是整型,小数部分会忽略,所以xd=0,而不是0.6666666666667,无论xd是否为浮点型,结果都一样
故,df.format(xd)等于0.00
- 2楼网友:心痛成瘾
- 2021-04-27 20:29
DecimalFormat df = new DecimalFormat("0.00");
就是设置一个格式化字符串形式。
xd=2/(1+2);
算出来的值为0
df.format(xd)
用format方法把0转换成你定义的字符串形式,即0.00
已格式化的数字字符串!!!
- 3楼网友:偏爱自由
- 2021-04-27 19:12
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);
- 4楼网友:时光挺欠揍
- 2021-04-27 18:00
这个已经写成转义字符了,源代码里面估计不可以看。你可以把\u67e5\u8be2复制出来再查编码表,或者把引号删除,把鼠标放在上面利用eclipse帮你看。我就知道这么多。。
- 5楼网友:狙击你的心
- 2021-04-27 17:01
xd=2/(1+2); 改为 xd=(float)2/(1+2);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯