6.2中我测试时候输入了3.3,6.6,9.9得出了平均数是6.6,但是却有2个数比6.6大,在输入其他数测试时候却没有这个问题,对此表示费解。
在请教了大神的情况和在大神指导下阅读了一些文章之后,对6.2产生的问题得到了点解决,关键还是自己学艺未精,看了没记住= =。(有大神求教真心不错啊~)
下面先介绍下浮点数。
浮点数是指
在计算机
中用近似表示任意某个实数
。具体来说,这个实数由一个整数或定点数(即
尾数
)乘以某个基数
(计算机中通常是2)的整数次幂
得到,这种表示方法类似于基数为10的科学计数法
。
我在程序中使用的是双精度类型的double,其用64bits=8bytes来表示一个数,其中符号位有1位,11位是指数位,52位表示精度,因为2^52次方一共有16位,故其精度能达到15-16位。
为了表示更大的数,在浮点数的运算过程中,经常无法确保其精度。
用运算符(==,>,<)来表示浮点数的大小关系返回的值有时候是不确定的。
我们在判断浮点数相等时,推荐用范围来确定,若x在某一范围内,我们就认为相等,至于范围怎么定义,要看实际情况而已了,float,和double 各有不同。
用到浮点数时候比较小数时候要十分注意他的精度差别。