| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3056 人关注过本帖
标题:java中除数小数点后加一位0和不加0的区别?
只看楼主 加入收藏
mao960929
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-11-29
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
java中除数小数点后加一位0和不加0的区别?
public class HelloWorld {
    public static void main(String[] args) {
        HelloWorld hello = new HelloWorld();
        hello.calcAvg(94, 81);
    }
    public void calcAvg(int score1,int score2){
        double avg=(score1+score2)/2.0;
        System.out.println("平均分:"+avg);
    }
}
在第二段中的double avg=(score1+score2)/2.0为什么后面要加一个零啊,我实验了一下,小数点后面不加0和加0的结果是一样的。
public class HelloWorld{
    public static void main(String[] args) {
        int age1=24;
        int age2=18;
        int age3=36;
        int age4=27;
        int sum=age1+age2+age3+age4;
        double avg=sum/4;
        int minus=age1-age2;
        int newAge=--age1;
        System.out.println("年龄总和:"+sum);
        System.out.println("平均年龄:"+avg);
        System.out.println("年龄差值:"+minus);
        System.out.println("自减后的年龄:"+newAge);

    }
}
这是我之前做过的,中间的double avg=sum/4;如果将4改成4.0之后,结果是小数点后面多了0.25,所以java中作为除数的时候,什么时候需要在小数点后面添加0,什么时候又不需要呢? 谢谢各位大神
搜索更多相关主题的帖子: 小数点 double public hello java 
2016-01-29 15:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
double avg=sum/4;  按c语法分析  这个sum是int类型 4是int类型  所以 / 的结果为int类型 自动四舍五入了

解决办法是  double avg=1.0*sum/4; 或 double avg=sum/4.0; 或 double avg=1.0*sum/4.0; 或者强制转换

DO IT YOURSELF !
2016-01-29 15:58
mao960929
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-11-29
收藏
得分:0 
回复 2楼 wp231957
那也就是说前面那个double只有在满足了那些条件之后才有用吗?我刚刚试了一下,发现第一个程序在小数点后面添加了0和不添加也是不一样的,添加了的情况下是87.5,不添加的情况下是87.0,也是因为这个原因吗?谢谢
2016-01-29 16:24
紫月一殇雪
Rank: 8Rank: 8
来 自:北大某鸟
等 级:蝙蝠侠
威 望:4
帖 子:131
专家分:764
注 册:2015-11-12
收藏
得分:5 
/是求商运算,
也就是不管你能不能整除,当运算数是整数类型的时候,商自然就是整数类型,所以很自然的丢失小数部分     5/2=2.5(丢失小数部分也就是2)------5/2=2

但是如果你的运算数(除数、被除数)是double类型的时候,商就是double类型,返回的也就自然而然是小数啦         5/2.0=2.5(因为double类型>int类型,整体式子自动向下转型)5/2.0=2.5

还可以这么理解
5/2=2 余 1  所以商是2
5/2.0=2.5    0    所以是2.5

---------------------来自北大某鸟
2016-01-30 10:07
快速回复:java中除数小数点后加一位0和不加0的区别?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017236 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved