Write a C function ftoa() that converts a given floating point number to string. Use of standard library functions for direct conversion is not allowed. The following is prototype of ftoa().
ftoa(n, res, afterpoint) n --> Input Number res --> Array where output string to be stored afterpoint --> Number of digits to be considered after point. For example ftoa(1.555, str, 2) should store "1.55" in res and ftoa(1.555, str, 0) should store "1" in res.
We strongly recommend to minimize the browser and try this yourself first.
A simple way is to use sprintf(), but use of standard library functions for direct conversion is not allowed.
The idea is to separate integral and fractional parts and convert them to strings separately. Following are the detailed steps.
1) Extract integer part from floating point.
2) First convert integer part to string.
3) Extract fraction part by exacted integer part from n.
4) If d is non-zero, then do following.
….a) Convert fraction part to integer by multiplying it with pow(10, d)
….b) Convert the integer value to string and append to the result.
Following is C implementation of the above approach.
This article is contributed by Jayasantosh Samal. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
- How to dynamically allocate a 2D array in C?
- How to write a running C code without main()?
- Commonly Asked OOP Interview Questions | Set 1
- Integer Promotions in C
- Print a long int in C using putchar() only
- Program to Find the Largest Number using Ternary Operator
- Passing Reference to a Pointer in C++
- How to avoid Structure Padding in C?
- wcrtomb() function in C/C++
- vswprintf() function in C/C++