为了账号安全,请及时绑定邮箱和手机立即绑定

为啥 sum/4.0 结果是26.25嘞

int age1=24; int age2=18; int age3=36; int age4=27; int sum = age1+age2+age3+age4; double avg = sum/4.0; 为啥 sum/4.0 结果是26.25嘞?

正在回答

3 回答

因为在java中double是双精度的,而float是单精度的

0 回复 有任何疑惑可以回复我~
#1

云中逐月 提问者

非常感谢!
2015-12-02 回复 有任何疑惑可以回复我~

貌似和数据源的小数位有关系,你试下double a=105.00/4,这样输出的a就是26.25了.

1 回复 有任何疑惑可以回复我~
#1

Java_人生

或者double avg = sum/4.00
2015-12-15 回复 有任何疑惑可以回复我~

.......我小学数学没学好...难道105除以4 不等于26.25吗......

0 回复 有任何疑惑可以回复我~
#1

云中逐月 提问者

嗯,数学上是这样,java中的精度问题还是有点绕,我初学者还需一定时间去理解
2015-12-02 回复 有任何疑惑可以回复我~
#2

天启之魂 回复 云中逐月 提问者

不是数学的问题......只是不知道你问题的意思 你的问题是为啥 sum/4.0 结果是26.25嘞?实际答案不就应该是这个数吗?难道该是别的? 楼上的回答更是莫名其妙...这和单双精度有什么关系.avg就算是float类型 答案也是26.25, 但是不能是除4.0 而是4.0f 你不会是以为双精度就是2位小数,单精度1位小数吧...所谓的单双精度指的是float只有4个字节 而double有8个字节 所以double能表示的小数位更多,能精确到更多的位数,所以单双精度只是一个好理解的说法而已 而且java中默认的小数类型就是double ,比如上面的4.0
2015-12-02 回复 有任何疑惑可以回复我~
#3

qq_82年的彬锅锅_03446807 回复 天启之魂

那sum/4=26.0为什么要加个.o啊,大神。
2016-06-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥 sum/4.0 结果是26.25嘞

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信