SHARE
TWEET

Untitled

a guest Oct 21st, 2019 73 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // C program for implementation of ftoa()
  2. #include<stdio.h>
  3. #include<math.h>
  4.  
  5. // reverses a string 'str' of length 'len'
  6. void reverse(char *str, int len)
  7. {
  8.     int i=0, j=len-1, temp;
  9.     while (i<j)
  10.     {
  11.         temp = str[i];
  12.         str[i] = str[j];
  13.         str[j] = temp;
  14.         i++; j--;
  15.     }
  16. }
  17.  
  18.  // Converts a given integer x to string str[].  d is the number
  19.  // of digits required in output. If d is more than the number
  20.  // of digits in x, then 0s are added at the beginning.
  21. int intToStr(int x, char str[], int d)
  22. {
  23.     int i = 0;
  24.     while (x)
  25.     {
  26.         str[i++] = (x%10) + '0';
  27.         x = x/10;
  28.     }
  29.  
  30.     // If number of digits required is more, then
  31.     // add 0s at the beginning
  32.     while (i < d)
  33.         str[i++] = '0';
  34.  
  35.     reverse(str, i);
  36.     str[i] = '\0';
  37.     return i;
  38. }
  39.  
  40. // Converts a floating point number to string.
  41. void ftoa(float n, char *res, int afterpoint)
  42. {
  43.     // Extract integer part
  44.     int ipart = (int)n;
  45.  
  46.     // Extract floating part
  47.     float fpart = n - (float)ipart;
  48.  
  49.     // convert integer part to string
  50.     int i = intToStr(ipart, res, 0);
  51.  
  52.     // check for display option after point
  53.     if (afterpoint != 0)
  54.     {
  55.         res[i] = '.';  // add dot
  56.  
  57.         // Get the value of fraction part upto given no.
  58.         // of points after dot. The third parameter is needed
  59.         // to handle cases like 233.007
  60.         fpart = fpart * pow(10, afterpoint);
  61.  
  62.         intToStr((int)fpart, res + i + 1, afterpoint);
  63.     }
  64. }
  65.  
  66. // driver program to test above funtion
  67. int main()
  68. {
  69.     char res[20];
  70.     float n = 233.007;
  71.     ftoa(n, res, 4);
  72.     printf("\n\"%s\"\n", res);
  73.     return 0;
  74. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top