java 两个整数相除 结果为一位小数

publicstaticvoidmain(String[]args){doubleans=3/4;System.out.println("Theansweris"+ans... public static void main(String[] args) {
double ans = 3/4;

System.out.println("The answer is " + ans);
}
输出为0.0
既然两个整数相除的结果默认为整型,为什么这里还会输出.0?
这里的.0不是四舍五入的结果,那么应该怎么解释?
展开
 我来答
小奥黑莓派
推荐于2018-04-10 · TA获得超过2816个赞
知道小有建树答主
回答量:1004
采纳率:0%
帮助的人:815万
展开全部
double ans = 3/4;

因为ans的类型为double

其实你这个式子就和
double ans=0是等价的,虽然是给的整数,但在储存的时候,已经做了隐式类型转换为double了,输出时会按类型格式输出,double当然要保留小数位,另外,他的小数不是四舍五入得来的,而是空位补0。
3/4明显大于0.5,四舍五入的话应该为1才对
匿名用户
2018-04-09
展开全部
两步操作: 3/4 没有指定浮点数,结果为整型0.
然后再类型转化成了double,如果不指定小数位数会自动给带一位小数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2014-05-01 · TA获得超过229个赞
知道小有建树答主
回答量:263
采纳率:66%
帮助的人:148万
展开全部
double 是精度问题,和3/4没有关系。
举个例子:
int ans=3/4;
int ans =0.3/0.4;
结果都是0,不会出现0.0。
这个只是精度的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yugi111
2014-05-01 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
double ans = 3.d / 4;

精度问题,以上即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旅初彤2B
2018-04-09 · TA获得超过2.6万个赞
知道大有可为答主
回答量:4.4万
采纳率:65%
帮助的人:5503万
展开全部
你这个情况叫取整
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式