weibo_艧叆濣_03653610
2017-08-24 20:59
//两者区别 double avg=sum/4; double avg=sum/4.0;
我用的是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的一个数。
数字都不能精确表示,在不精确数字上的运算结果不精确也就不足为奇了
可以自己试试看,就知道区别在哪里了
sum/4.0;可以自动转换成double类型
Java入门第一季(IDEA工具)升级版
1166354 学习 · 17590 问题
相似问题