当前位置: 首页 > news >正文

C语言实现浮点数或整数转成字符串

有的编程环境中不能直接使用sprintf库函数,这样就需要自己编写一个函数实现小数(浮点数)或整数转成字符串。

编程代码如下:

#include <stdio.h>void floatToString(float f,char str[])
{int data = 0;int n = 0;int i = 0;int len = 0;char strTemp[20] = "";for(i=0;i<10;i++)	//	清空数组{str[i] = 0;}if(f>=1){data = (int)(f*1000);if(data%10 >= 5)		//	四舍五入{data = (data/10)+1;}else{data = data/10;}while(data){strTemp[n++] = data%10+'0';data = data/10;}for(i=0;i<n;i++){str[i] = strTemp[n-i-1];}}else if(f<=-1){data = (int)(-1*(f*1000));if(data%10 >= 5)	//	四舍五入{data = (data/10)+1;}else{data = data/10;}while(data){strTemp[n++] = data%10+'0';data = data/10;}str[0] = '-';for(i=1;i<=n;i++){str[i] = strTemp[n-i];}}else{if(f>=0){data = (int)((f+1)*1000);if(data%10 >= 5)	//	四舍五入{data = (data/10)+1;}else{data = data/10;}printf("data = %d\n",data);while(data){strTemp[n++] = data%10+'0';data = data/10;}for(i=0;i<n;i++){str[i] = strTemp[n-i-1];}str[0] = '0';}else{data = (int)(-1*((f-1)*1000));if(data%10 >= 5)	//	四舍五入{data = (data/10)+1;}else{data = data/10;}while(data){strTemp[n++] = data%10+'0';data = data/10;}str[0] = '-';for(i=1;i<=n;i++){str[i] = strTemp[n-i];}str[1] = '0';}}for(i=0;i<20;i++){if(0 == str[i]){break;}strTemp[i] = str[i];len++;}str[len-2] = '.';str[len-1] = strTemp[len-2];str[len] = strTemp[len-1];str[len+1] = 0;
}
void main()
{char str[10] = "";float f = 0;while(1){scanf("%f",&f);floatToString(f,str);puts(str);}
}

实现效果:

程序中还是有一点bug,各位测试使用,需要简单优化🙂!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【letcod-c++】128.最长连续序列
  • Visual Studio Code中跟创建运行项目有关的几个终端命令
  • 代码随想录算法训练营第七天(二)|15.三数之和 18.四数之和
  • day17-权限管理
  • IDEA左下角不显示本地修改的localChanges信息-git
  • Oracle认证1Z0-071线上考试注意事项
  • 关于keil程序无法进入main函数问题
  • 未来已来:全方位掌握【人工智能】的系统学习路线
  • 基于JSP的列车票务信息管理系统
  • sql常用语法总结
  • 【Mysql】第四章 数据类型(数值+字符串+日期+enum+set)
  • 决策树可解释性分析
  • 【wsl】wsl + vscode 中使用 typora 打开 markdown 文件
  • 简单搭建dns服务器
  • 浅学 Pytorch
  • 《深入 React 技术栈》
  • 【node学习】协程
  • Android系统模拟器绘制实现概述
  • C++入门教程(10):for 语句
  • Centos6.8 使用rpm安装mysql5.7
  • CSS居中完全指南——构建CSS居中决策树
  • gf框架之分页模块(五) - 自定义分页
  • mysql常用命令汇总
  • Object.assign方法不能实现深复制
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 对JS继承的一点思考
  • 飞驰在Mesos的涡轮引擎上
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 猴子数据域名防封接口降低小说被封的风险
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 双管齐下,VMware的容器新战略
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ###项目技术发展史
  • #pragma multi_compile #pragma shader_feature
  • #在 README.md 中生成项目目录结构
  • (160)时序收敛--->(10)时序收敛十
  • (LeetCode) T14. Longest Common Prefix
  • (三)mysql_MYSQL(三)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • ./configure,make,make install的作用
  • .apk 成为历史!
  • .equals()到底是什么意思?
  • .Family_物联网
  • .net core 6 集成和使用 mongodb
  • .Net Core 中间件与过滤器
  • .net生成的类,跨工程调用显示注释
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [C++] vector对比list deque的引出
  • [CTF]php is_numeric绕过
  • [Day 63] 區塊鏈與人工智能的聯動應用:理論、技術與實踐