博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ftoa浮点型转换成字符串
阅读量:5939 次
发布时间:2019-06-19

本文共 1018 字,大约阅读时间需要 3 分钟。

#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\n",t);
    temp=t;
printf("%d\n",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)='\0';
  
}
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)='\0';
}
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\n",num);
  if(ftos(num,s,n))
  {
    printf("after convert is %s\n",s);
  }
  return 0;
}

转载地址:http://tvmtx.baihongyu.com/

你可能感兴趣的文章
小tips:你不知道的 npm init
查看>>
Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...
查看>>
Jmeter也能IP欺骗!
查看>>
Rust 阴阳谜题,及纯基于代码的分析与化简
查看>>
ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范
查看>>
(原創) array可以使用reference方式傳進function嗎? (C/C++)
查看>>
170多个Ionic Framework学习资源(转载)
查看>>
Azure:不能把同一个certificate同时用于Azure Management和RDP
查看>>
Directx11教程(15) D3D11管线(4)
查看>>
Microsoft Excel软件打开文件出现文件的格式与文件扩展名指定格式不一致?
查看>>
ios ble 参考
查看>>
linux中注册系统服务—service命令的原理通俗
查看>>
基于托管C++的增删改查及异步回调小程序
查看>>
Oracle DBMS_STATS 包 和 Analyze 命令的区别
查看>>
linux下基本命令
查看>>
windows server 2008R2 上安装配置freesshd
查看>>
手动删除SVCH0ST.EXE的方法
查看>>
已释放的栈内存
查看>>
Android网络之数据解析----SAX方式解析XML数据
查看>>
Java递归列出所有文件和文件夹
查看>>