Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,885 questions

51,811 answers

573 users

How to implement float-to-string conversion without library functions in C

1 Answer

0 votes
#include <stdio.h> 

int _pow(int base, int exponent) {
    int power = 1;
 
    for (int i = 1; i <= exponent; ++i) {
        power = power * base;
    }
 
    return power;
 }
 
int _strlen(char *s) {  
    int i = 0;
       
    while (s[i++] != '\0');
           
    return i - 1; 
} 
  
void _reverse(char *s) { 
    int i = 0, end = _strlen(s) - 1, temp; 
    while (i < end) { 
        temp = s[i]; 
        s[i] = s[end]; 
        s[end] = temp; 
        i++; end--; 
    } 
}
 
int _inttostr(int n, char s[]) { 
    int i = 0; 
    
    while (n) { 
        s[i++] = (n % 10) + '0'; 
        n = n / 10; 
    } 
      
    _reverse(s); 
    s[i] = '\0'; 
     
    return i;
} 
 
void _floadtostr(float f, char *s, int after_point) { 
    int int_part = (int)f; 
   
    float float_part = f - (float)int_part; 
   
    int i = _inttostr(int_part, s); 
   
    if (after_point != 0) { 
        s[i] = '.';  
   
        float_part = float_part * _pow(10, after_point); 
   
        _inttostr((int)float_part, s + i + 1); 
    } 
} 
 
int main()
{ 
    char s[16] = ""; 
    float f = 123.4567;
     
    _floadtostr(f, s, 4);
    
    printf("%s\n", s); 
      
    return 0; 
}   
  
  
  
/*
run:
  
123.4567
  
*/

 



answered May 11, 2024 by avibootz

Related questions

1 answer 214 views
3 answers 395 views
3 answers 399 views
1 answer 159 views
2 answers 268 views
...