请问各位大神为什么结果是3.0而不是3.0000000,float不是保留八位有效数字吗?

如题,我刚学习java,求各位指点!谢谢!

float的精度为八位,意思就是float可以存储八位有效数字,那么针对这道题目,我们知道sum是int型的,而x.length也是int型的,我们知道,在java中,int型相除会抹掉小数,结果原为3,但是又因为你将一个int型的3赋值给float型的,那么计算机在内存中存储时会存储有效数字,当你的后面小数都为0,那么float就会只取一位,这是为了减小内存而定的,如果你需要解决办法,那么就是强制将sum转换成float型的,这样求出来的就是一个8位的小数
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-08
float是八位,并不是八位有效数字
第2个回答  2014-10-08
你去看看基本类型的存储方式,8个基本类型中用位数来存储的.
相似回答