zoukankan      html  css  js  c++  java
  • 浮点数转换成字符串函数

    sprintf函数太大,在STM8上面根本不敢用,动不动就.text overflow。为了将采集的数值通过串口上传到计算机,只能自己写了一个浮点数转换成字符串的函数:

    #include <stdio.h>
    #include <stdint.h>
    
    static char table[]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    
    void num2char(char *str, double number, uint8_t g, uint8_t l)
    {
        uint8_t i;
        int temp = number/1;
        double t2 = 0.0;
        for (i = 1; i<=g; i++)
        {
            if (temp==0)
                str[g-i] = table[0];
            else
                str[g-i] = table[temp%10];
            temp = temp/10;
        }
        *(str+g) = '.';
        temp = 0;
        t2 = number;
        for(i=1; i<=l; i++)
        {
            temp = t2*10;
            str[g+i] = table[temp%10];
            t2 = t2*10;
        }
        *(str+g+l+1) = '';
    }
    
    
    int main(int argc, char const *argv[])
    {
        char str[20];
        num2char(str, 23.56821312, 8, 10);
        printf("%s
    ", str);
        return 0;
    }

    测试结果如下:

    00000023.5682131
  • 相关阅读:
    Odd sum CodeForces
    Chips CodeForces
    Secrets CodeForces
    Voting CodeForces
    Jury Meeting CodeForces
    Planning CodeForces
    Maxim Buys an Apartment CodeForces
    Chemistry in Berland CodeForces
    Monitor CodeForces
    Four Segments CodeForces
  • 原文地址:https://www.cnblogs.com/craftor/p/3820027.html
Copyright © 2011-2022 走看看