PIC C18:将double转换为字符串

时间:2012-02-07 21:37:39

标签: embedded microcontroller pic c18

我使用的是PIC18F2550。用C18语言编程。
我需要一个将double转换为字符串的函数,如下所示:

void dtoa(  char *szString,             // Output string
            double dbDouble,            // Input number
            unsigned char ucFPlaces)    // Number of digits in the resulting fractional part
{
    // ??????????????
}

在主程序中这样调用:

void main (void)
{
    // ...
    double dbNumber = 123.45678;
    char szText[9];
    dtoa(szText, dbNumber, 3); // szText becomes "123.456" or rounded to "123.457"
    // ...
}

3 个答案:

答案 0 :(得分:1)

所以写一个!

5分钟,它应该采取一些方格纸和咖啡 事实上,这是一个很好的面试问题

答案 1 :(得分:1)

小小的printf可能适合您:http://www.sparetimelabs.com/tinyprintf/index.html

答案 2 :(得分:1)

通常,Newlib C库(来自RedHat的BSD许可证,Cygwin的一部分以及许多“裸机”嵌入式系统编译器中使用的)是一个很好的起点,可用于有用的资源。在标准C库中。

Newlib dtoa.c源位于源树的src/newlib/libc/stdlib子目录中:

该文件有点奇怪,因为Newlib使用一些奇怪的宏来进行函数声明,但应该很容易适应 - 而且,获得BSD许可,你几乎可以做任何你想做的事情如果您保留版权声明。