PIC C18:将双精度数转换为字符串

发布于 2025-01-03 14:17:31 字数 547 浏览 0 评论 0 原文

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

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"
    // ...
}

I am using PIC18F2550. Programming it with C18 language.
I need a function that converts double to string like below:

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

To be called like this in the main program:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

放血 2025-01-10 14:17:31

所以写一篇吧!

5 分钟,一点方格纸和一杯咖啡就足够了。
事实上这是一个很好的面试问题

So write one!

5mins, a bit of graph paper and a coffee is all it should take.
In fact it's a good interview question

沉鱼一梦 2025-01-10 14:17:31

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

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

该文件会有点奇怪,因为 Newlib 在函数声明中使用了一些奇怪的宏,但应该很容易适应 - 并且, BSD 许可,如果您保留版权声明,您几乎可以用它做任何您想做的事情。

Generally, the Newlib C library (BSD license, from RedHat, part of Cygwin as well as used in many many "bare-metal" embedded-systems compilers) is a good place to start for usefuls sources for things that would be in the standard C library.

The Newlib dtoa.c sources are in the src/newlib/libc/stdlib subdirectory of the source tree:

The file is going to be a little odd, in that Newlib uses some odd macros for the function declarations, but should be straightforward to adapt -- and, being BSD-licensed, you can pretty much do whatever you want with it if you keep the copyright notice on it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文