Program to convert a floating point number to string in C

Write a program to convert a floating-point number to a string.

Example:

Input:  n=23.686999
Output: "23.8969"

Approach

C

#include <stdio.h>
#include <math.h>

//function to reverse a string
void reverse(char *strint len)
{
    int i = 0j = len - 1temp;

    //apply two pointer approach
    while (i < j)
    {

        //swap the first and last
        temp = str[i];
        str[i] = str[j];
        str[j] = temp;

        //increment first
        i++;

        //decrement last
        j--;
    }
}

//function to convert interer to string
int intToStr(int xchar str[]int d)
{
    int i = 0;
    while (x > 0)
    {

        //convert to character
        str[i++] = (x % 10) + '0';
        x = x / 10;
    }

    // If number of digits required is more, then
    // add 0s at the beginning
    while (i < d)
        str[i++] = '0';

    reverse(stri);
    str[i] = '\0';
    return i;
}

// Converts a floating point number to string.
void ftoa(float nchar *resint afterpoint)
{
    //integer part
    int ipart = (int)n;

    // floating part
    float fpart = n - (float)ipart;

    // convert integer part to string
    int i = intToStr(ipartres0);

    // check for display option after point
    if (afterpoint != 0)
    {
        //put . to the result
        res[i] = '.';
        fpart = fpart * pow(10afterpoint);

        //convert into to string after .
        intToStr((int)fpartres + i + 1afterpoint);
    }
}
int main()
{
    char res[20];
    float n = 23.896999;

    //only 4 numbers come after decimal
    ftoa(nres4);
    printf("%s",res);
    return 0;
}


No comments:

Post a Comment