中易网

关于JAVA程序中2/3=0.0的问题

答案:6  悬赏:0  
解决时间 2021-04-28 14:22
如题,还有我这样设置DecimalFormat df = new DecimalFormat("0.00");
xd=2/(1+2);
df.format(xd)却等于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
DecimalFormat df = new DecimalFormat("0.00"); 就是设置一个格式化字符串形式。 xd=2/(1+2); 算出来的值为0 df.format(xd) 用format方法把0转换成你定义的字符串形式,即0.00 已格式化的数字字符串!!!
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);
这个已经写成转义字符了,源代码里面估计不可以看。你可以把\u67e5\u8be2复制出来再查编码表,或者把引号删除,把鼠标放在上面利用eclipse帮你看。我就知道这么多。。
xd=2/(1+2); 改为 xd=(float)2/(1+2);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
历史上的清官的他们的事迹,要短一点的
点亮所有图标的方法!
蜡笔小新的作者死了,以后小新不会再出了吗?
大金中央空调VRE-PROSHOP怎么样
梦想数码电脑店我想知道这个在什么地方
什麽样子的跑步姿势最适合女生、比较快?
昨天拉直的头发太死板。
半路味噌酱在哪里买
剑网3的坐骑只有马一种吗?
怎么点亮QQ所有图标????
山东电视影视频道9月底即将上映的连续剧叫什
天龙八部什么时候能进凤凰古城
惠普4416s可以玩QQ旋舞吗
问问的【每天学习知识2小时】怎么个计算时间
每天大便都是稠稠的,还有带有谈黑色是?
推荐资讯
电脑键盘突然不好使了,修机器的把机箱拆开装
给一个姓杨的小女孩儿起个什么名字好呢?
滨江高教园到杭州市建国北路236号诚信大厦怎
求些精彩好看的影片
索爱K700C如何驱动?急!!
谁知道好的古风歌曲网站?
魔装学园h×h在哪个播放器可以看
58乘以101减去58怎样简便运算
nsis如何执行命令行语句
穿越火线为什么帐号一登录就连接失败
请高手帮下我吧!
为什么篮球运动有特殊的魅力和情趣?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?