void double2string(char *str, double double_number, unsigned char len)
{
static char table[]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
unsigned char i;
unsigned char j = 0;
unsigned char str_cnt = 0;
int int_number = 0;
double decimal_number = 0.0;
int temp = 0;
if(double_number < 0)
{
str[0] = '-';
str_cnt++;
double_number = double_number * (-1);
}
int_number = double_number / 1;
char int_str[32] = {0};
i = 0;
while(1)
{
if (int_number == 0)
{
int_str[i] = table[0];
i++;
break;
}
else
{
int_str[i] = table[int_number%10];
i++;
}
int_number = int_number / 10;
if(int_number == 0)
{
break;
}
}
for(j = i;j > 0;j--)
{
*(str + str_cnt) = int_str[j- 1];
str_cnt++;
}
str[str_cnt] = '.';
str_cnt++;
temp = 0.0;
decimal_number = double_number;
for(i = 0; i < len; i++)
{
decimal_number = decimal_number * 10;
temp = decimal_number / 1;
str[str_cnt] = table[temp % 10];
str_cnt++;
}
str[str_cnt] = '\0';
}