用网上搜到的联合体处理浮点数时出现问题

2019-08-18 21:06发布

我在网上搜浮点数写入eeprom并读取出来的方法,比较好的是用联合体的方法,但是我按照网上的方法读取出来的数据,小数点后面的数都没有了,只有前面的整数,哪位大神指点一下啊!下面是从网上搜到的方法
把所需要存取的浮点数和一个数组(char i[4])构成一个联合,存取的时候用数组,使用的时候用浮点数,如下:

union myfloat
{
   char i[4];
   float j;
}
写:
EEPROM_WRITE(0,myfloat.i[0]);
EEPROM_WRITE(1,myfloat.i[1]);
EEPROM_WRITE(2,myfloat.i[2]);
EEPROM_WRITE(3,myfloat.i[3]);
读:
myfloat.i[0]=EEPROM_READ(0);
myfloat.i[1]=EEPROM_READ(1);
myfloat.i[2]=EEPROM_READ(2);
myfloat.i[3]=EEPROM_READ(3);
使用浮点数:
float k=myfloat.j;


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。