zoukankan      html  css  js  c++  java
  • ftoa浮点型转换成字符串

    #include <stdio.h>


    bool ftos(float num,char *s,int n)
    {
        int temp;
    float t=num;
    int pn=0;
    bool flag_s=true;
    bool flag_z=false;


    for(int i=n;i>0;i--)
       t=t*10;
    printf("%f ",t);
        temp=t;
    printf("%d ",temp);
    if(temp<0)
    {
      temp=-temp;
      t=-num;
      flag_s=false;
    }
    if(temp==0)
    {
           
      if(n>0)
      {
         for( pn=0;pn<n;pn++)
     {
        *(s+pn)='0';
     }
     *(s+pn)='.';
     ++pn;
      }
      *(s+pn)='0';
      ++pn;
      if(!flag_s){
     
      *(s+pn)='-';
       ++pn;
      }
      *(s+pn)='';


      
    }
    else
    {
    while(temp>0)
    {
      if(pn==n && n>0)
      {
         
     *(s+pn)='.';
     ++pn;
      }
      else{
        *(s+pn)=(temp%10)+'0';
    temp=temp/10;
    ++pn;
      }
    }
    while(pn<n)
    {
       *(s+pn)='0';
      ++pn;
    }
    if(pn==n)
      {
         
     *(s+pn)='.';
     ++pn;
     if(flag_s){
       *(s+pn)='0';
        ++pn;
     }
      }
        if(!flag_s){
    if(t<1.0){
     *(s+pn)='.';
     ++pn;
     *(s+pn)='0';
      ++pn;
    }
      *(s+pn)='-';
      ++pn;
      }
    *(s+pn)='';
    }
    int i(0),j(pn-1);
    while(i<j)
    {
       int temp=*(s+i);
            *(s+i)=*(s+j);
    *(s+j)=temp;
    ++i;
    j--;
    }


      return true;
    }


    int main()
    {
      char s[20];
      float num=123.456;
      int n=3;
      scanf("%f",&num);
      scanf("%d",&n);
      printf("float num is %f ",num);
      if(ftos(num,s,n))
      {
        printf("after convert is %s ",s);
      }
      return 0;
    }
  • 相关阅读:
    day2-元组 列表-赋值和深浅拷贝
    day1-bytes类型 三元运算 进制
    DAY02
    DAY02
    Python格式化、显示颜色
    DAY02
    DAY02
    DAY02
    DAY02
    DAY02
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7008166.html
Copyright © 2011-2022 走看看