void FToStr1(float fl , char *str, uint8_t d) // fl:浮点数 d:小数位数
{
int integer = 0; //整数部分
float decimal = 0; //小数部分
int temp;
uint8_t i, n;
//整数部分
integer = (int)(fl);
temp = integer;
n = 0;
do
{
n++;
temp = (int)(temp / 10); //计算有几位整数位 n
}
while(temp != 0);
temp = integer;
for( i = 0; i < n ; i++)
{
*(str + n - 1 - i) = (uint8_t)(temp % 10) + '0'; //此处跳出
temp = (int)(temp / 10);
}
if( d == 0 )
{
*(str + i) = '\0';
}
else
{
*(str + i) = '.';
}
//小数部分
decimal = fl - integer;
for(i = n + 1; i < d + n + 1 ; i++)
{
decimal = decimal * 10;
*(str + i) = (uint8_t)(decimal) + '0';
decimal = decimal - (uint8_t)(decimal);
}
*(str + i) = '\0';
}