课程
/后端开发
/Java
/Java入门第一季(IDEA工具)升级版
//两者区别 double avg=sum/4; double avg=sum/4.0;
2017-08-24
源自:Java入门第一季(IDEA工具)升级版 3-2
正在回答
我用的是float avg=(age1+age2+age3+age4)/4; 可以算出平均年龄26.0,但是4后面不应该加个f吗?如下:
float avg=(age1+age2+age3+age4)/4f; 就会报错。
所以那个4.25是本身是没算错误的 只是表示方法不同是吗
4 和4.0 在计算机中 根本不是一个数 小数二进制是不准确的
4 个人 你用4.0
服了
用下面 这个算就行了
double avg=sum/4;
没有必要纠结这个问题。
实际上,不是运算本身会出错,而是计算机根本就不能精确的表示很多数,比如0.1这个数。
计算机是用一种二进制格式存储小数的,这个二进制格式不能精确表示0.1,它只能表示一个非常接近0.1但又不等于0.1的一个数。
数字都不能精确表示,在不精确数字上的运算结果不精确也就不足为奇了
可以自己试试看,就知道区别在哪里了
weibo_艧叆濣_03653610 提问者
慕的地2097853 回复 weibo_艧叆濣_03653610 提问者
weibo_艧叆濣_03653610 提问者 回复 慕的地2097853
sum/4.0;可以自动转换成double类型
举报
0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始
4 回答关于FLOAT和DOUBLE的问题
1 回答关于double和Double
2 回答关于double与float
4 回答关于double和float调用空间大小的问题
2 回答关于double类型保留小数位数的问题??