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

double avg=sum/4d 或者float avg=sum/4f 后面加了字母d或f的,运算出来是26.25 而double avg=sum/4 或者float avg=sum/4 这样就只是26.0 这是为什么额,后面加字母是控制输出精度的嘛?

double avg=sum/4d    或者float avg=sum/4f   后面加了字母d或f的,运算出来是26.25 而double avg=sum/4   或者float avg=sum/4    这样就只是26.0    这是为什么额,后面加字母是控制输出精度的嘛?

正在回答

3 回答

sum是整型,在计算 double avg =sum/4 时 sum为int或long,除以4被转型为int/long类型,然后被赋值给精度更高的double类型,然而整型是没有浮点部分的,因此小数部分在后面计算时就已经被丢弃了,只保留了整数部分并赋值给double

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

double avg=sum/4d    或者float avg=sum/4f   后面加了字母d或f的,运算出来是26.25

      是因为sum是int/long型 ,4d/4f是浮点型,运算后的类型是浮点型

而double avg=sum/4   或者float avg=sum/4    这样就只是26.0   

    是因为sum是int/long型,4是int型,运算后还是int型,然后被赋值给浮点型

这里面牵涉到一个不同类型运算的时候向大容量类型转换byte、short、char<int<long<float<double;

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

因为4本身是int型,如果不加d或f,就会当做整数相除处理,再赋值给double或float类型的变量。

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

举报

0/150
提交
取消

double avg=sum/4d 或者float avg=sum/4f 后面加了字母d或f的,运算出来是26.25 而double avg=sum/4 或者float avg=sum/4 这样就只是26.0 这是为什么额,后面加字母是控制输出精度的嘛?

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