### Author Topic: fltoa example  (Read 2216 times)

#### TimoVJL

• Global Moderator
• Member
• Posts: 2025
##### fltoa example
« on: January 31, 2016, 12:49:41 PM »
Nice example from net.
A small modification here:
Code: [Select]
`#define WIN32_LEAN_AND_MEAN#include <windows.h>// https://github.com/fthorey/swiftler-bones/blob/master/src/libglobal/strutils.c// https://en.wikibooks.org/wiki/C_Programming/C_Reference/stdlib.h/itoa/* Source: Wikipédia *//* reverse:  reverse string s in place */void reverse(char* s, int n){  int i, j;  char c;  for (i = 0, j = n - 1; i < j; i++, j--)  {    c = s[i];    s[i] = s[j];    s[j] = c;  }}/* Adapted from Wikipédia *//* itoa:  convert n to characters in s */char* itoa(int n, char* s){  int i, sign;  if ((sign = n) < 0)       /* record sign */    n = -n;                 /* make n positive */  i = 0;  do                        /* generate digits in reverse order */  {    s[i++] = n % 10 + '0';  /* get next digit */  } while ((n /= 10) > 0);  /* delete it */  if (sign < 0)    s[i++] = '-';  s[i] = '\0';  reverse(s, i);  return s;}#define FLTOA_PRECISION 0.000001char* fltoa(float f, char *s){  int f_int;  int f_frac;  char* const str = s;  if (f < 0) {    *s++ = '-';    f = -f;  }  f_int  = f;  f_frac = (f - f_int) / FLTOA_PRECISION;  itoa(f_int, s);  while (*s)    s++;  *s++ = '.';  itoa(f_frac, s);  while (*s)    s++;  while (*(--s) == '0')    *s = '\0';  if (*s == '.')    *s = '\0';  return str;}#ifndef __POCC__int _fltused; // for msvc#endifvoid __cdecl WinMainCRTStartup(void){ double d = 3.141582536; char s[20]; fltoa(d, s); MessageBox(0,s,0,MB_OK); ExitProcess(0);}`
May the source be with you