在做串口收发的时候出现的一个问题,废了一些功夫,借鉴了一些代码。解决方案如下:
#include "stdio.h"
float shift_coefficient = 10.2;
static int modff(const char* value, int* iptr)
{
int fractional;
sscanf(value, "%d.%d", &fractional, iptr);
return fractional;
}
int main()
{
int integral = 0;
int fractional = 0;
char temparr[20]={0};
const char* str = temparr;
sprintf(temparr,"%.1f",(float)shift_coefficient); //sprintf中的%.1f是指后面的参数,
//浮点数变成字符串
//sscanf中的%d.%d指的是前面字符串
//字符串变成浮点数
integral = modff(str, &fractional);
printf("Integral: %d\r\n", integral);
printf("Fractional: %d\r\n", fractional);
}