#include <string.h>
// 参数:n=要转换的浮点数;a=小数位数;str=存放转换后的字符串
uint floatToString(float n, ubyte a, uchar* str)
{
uint length = 0;
uint i, j;
if (n == 0)
{
str[0] = '0';
if (a > 0) str[1] = '.';
memset(str + 2, '0', a);
length = 2 + a;
if (a == 0) length--;
}
else
{
int num;
for (i = 0; i < a; i++) n *= 10;
num = (uint)n;
if (num < 0) num *= -1;
i = 0;
while (num > 0)
{
str[i] = num % 10 + 48;
num /= 10;
i++;
length++;
}
if (n < 0)
{
str[i] = '-';
length++;
}
i = 0; j = length - 1;
while (i < j)
{
uchar c = str[i];
str[i] = str[j];
str[j] = c;
i++; j--;
}
if (a > 0)
{
for (i = 0, j = length; i < a; i++, j--) str[j] = str[j - 1];
str[length - a] = '.';
length++;
}
}
return length;
}