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\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;
}
最新文章
- Android 控件知识点
- PIC18F中断定时器
- C#获取当前日期时间(转)
- code manager tools svn服务安装配置
- Linux启动提示“unexpected inconsistency;RUN fsck MANUALLY”
- html调用applet
- AbpZero--4.不使用谷歌字体,提升加载速度
- Qt 学习之路:QFileSystemModel
- 237. Delete Node in a Linked List(leetcode)
- IAR软件的使用
- BizDevOps — the true value proposition of workflow engines
- SpringBoot的搭建
- java中String new和直接赋值的区别
- python3.5无法安装pip,报错ImportError: cannot import name &#39;HTTPSHandler&#39;
- Unity3d中使用摄像机制作实时显示小地图
- JavaScrip——练习(做悬浮框进一步:悬浮窗后缀悬浮窗【感觉这种方法比较麻烦】)
- chrome 禁止自动更新
- Css初步认识
- Spring全局变量
- POJ1006:Biorhythms——题解
热门文章
- LeetCode 11. Container With Most Water 单调队列
- 接口测试及接口Jmeter工具介绍
- vue懒加载
- Java基础学习总结(48)——Java 文档注释
- iBase4J部署总结
- Jquery-select元素操作方法
- 聚类算法学习-kmeans,kmedoids,GMM
- BestCoder Round #52 (div.2) HDU 5418 Victor and World (DP+状态压缩)
- HDOJ 1874 畅通project续
- 【iOS】UICollectionView自己定义Layout之蜂窝布局