float在程序中貌似不可以改小数点后位数,只可以在输出时只输出5位小数。
计算机只是别01码,也就是说int型数字和float数字都是01码组成,int型比较容易理解,如 101 = 1*2^2 + 0*2^1 + 1*2^0 = 5;
对于float数字 先将数字转换成 纯小数*10^n 形式,如2.5 = 0.25*10^1
0.023 = 0.23 *10^-1,然后保存小数和指数n。小数部分保存也是二进制
101 = 1*2^-1 + 1*2^-3 = 0.5+0.125 = 0.625。
综上,十进制里面的小数位数与此无丝毫关联,所以没法设定小数点后位数。
能是看一下你的问题吗?一般不会有这种误差的啊。
小数在计算机中存储的格式是一定的,按阶码来存。
无法自定义
%a.bf a表示总位数,包括小数点。b表示小数点后的位数
例如:7.5%f意思为七位的实型常量 小数点后面为五位