社区
C语言
帖子详情
【急急急】如何将一个float型数据对应的各位提取出来?
gaupen1186
2011-12-02 04:12:32
一个float型数据,比如是123.456,如何把他的各个位分别提取出来?就是分别得到1,2,3,4,5,6跟小数点。
假如是int型,就可以通过跟10取余%10来提取所有位,但浮点型怎么办呢?
keil C51里用。
...全文
1392
14
打赏
收藏
【急急急】如何将一个float型数据对应的各位提取出来?
一个float型数据,比如是123.456,如何把他的各个位分别提取出来?就是分别得到1,2,3,4,5,6跟小数点。 假如是int型,就可以通过跟10取余%10来提取所有位,但浮点型怎么办呢? keil C51里用。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liyanchao153
2012-08-06
打赏
举报
回复
例如1.00000 把1.00000*10000 然后用long int 型 储存 1000000 在进行分离
狂且
2011-12-03
打赏
举报
回复
对啊, keil C51 里用浮点数本来就不好. 不知道楼主要这么去处理一个浮点数有什么用啊?
说出来或许可以用其他方法解决.
rocky_huang
2011-12-03
打赏
举报
回复
LZ,你在kc下编写,不能用float类型的,有个技巧可以推荐给你:就是将float转换成int类型或者long型,
比如123.456,转换成int就让这个数*1000,这样就变成了123456,当然其他的数据也要相应的*1000,然后计算就方便了,但是心里要有数,这是*1000的值,最后在转换为实际值!
AIGPTchina
2011-12-03
打赏
举报
回复
难道必须要定义浮点型才能解决问题?
windman521
2011-12-03
打赏
举报
回复
float a = 123.456;
int b;
while ((int)(a * 10) % 10)
{
a *= 10;
}
b = (int)a;
。。。。。。继续
AnYidan
2011-12-02
打赏
举报
回复
[Quote=引用 7 楼 iblold 的回复:]
引用 5 楼 yang7531388 的回复:
这里可以这样做,用sprintf(float_str,"%f",float),将float型转为字符串,然后再对float_str一个一个的取字符就OK了
转为字符串后,也可以使用切割函数strtok,根据"."将字符串切割开,再一个个得到每个位
这个可能有点烦,希望有更好的解决方法
c51最好不用sprintf之类的函数,太……
[/Quote]
用 c51 处理 float 就是大忌,lz 居然还要在转成 string
zichen0422
2011-12-02
打赏
举报
回复
float 也可以转换成字符串处理,分隔符.在这个.的前后使用处理方法就可以的啊!
iblold
2011-12-02
打赏
举报
回复
[Quote=引用 5 楼 yang7531388 的回复:]
这里可以这样做,用sprintf(float_str,"%f",float),将float型转为字符串,然后再对float_str一个一个的取字符就OK了
转为字符串后,也可以使用切割函数strtok,根据"."将字符串切割开,再一个个得到每个位
这个可能有点烦,希望有更好的解决方法
[/Quote]
c51最好不用sprintf之类的函数,太耗资源
楼主可以尝试把浮点数扩大,比如*1000,变成整数,然后在%10之类的取每一位就行了
Defonds
2011-12-02
打赏
举报
回复
用算法
或者字符串截取一下
yang7531388
2011-12-02
打赏
举报
回复
这里可以这样做,用sprintf(float_str,"%f",float),将float型转为字符串,然后再对float_str一个一个的取字符就OK了
转为字符串后,也可以使用切割函数strtok,根据"."将字符串切割开,再一个个得到每个位
这个可能有点烦,希望有更好的解决方法
gongheguoyingpai11
2011-12-02
打赏
举报
回复
使用fmod()函数,这是<math.h>中的一个对浮点数求余数的函数,示例如下:
#include<stdio.h>
#include<math.h>
int main()
{
double num=10.0;
double num1=3.0;
double num2;
num2=fmod(num,num1);
printf("%lf, %lf, %lf\n",num,num1,num2);
}
boluomianbao
2011-12-02
打赏
举报
回复
搞错了,lz要在Keil里用,我的方法不适用了。。
SORRY了··
boluomianbao
2011-12-02
打赏
举报
回复
同样遇到这个问题,不过,我只要提取整数部分存到int变量,小数部分存到int变量
我现在想用的方法是:写2个小函数,里面写实现,分别返回整数部分和小数部分的内容,两部分的内容取出就用查找小数点,然后截取左边字串和右边字串,用atoi得到int型值。
lz要得到每一位,应该也不难了。
能力有限,只知道先用笨拙的方法,后期遇到更好的,再优化咯!
JavaScript 中的 slice 方法详解:逐步学习和深度解剖
求位于先序序列中第k 个位置的结点的值 问题:求位于先序序列中第k 个位置的结点的值【问题描述】求位于先序序列中第k 个位置的结点的值【输入形式】先序序列构造二叉树,结点
数据
类
型
为字符
型
,空结点用'#快速入门 JavaScript 的 slice 方法:新手教 在 JavaScript 中,slice() 是
一个
常用的数组方法,用于从现有数组中
提取
一部分元素,然后返回
一个
新的数组。它是
一个
非常有用的工具,可以帮助你在不农发笔面经 笔
计算机视觉知识点整理(上) 基础篇(持续更新)
前言 最近在面试,每天会被考到很多知识点,这些知识点有些我已经看了十几遍,还是会反应慢或者记不住。回想我在学习过程中,也是学了忘忘了学,没有重复个几十遍根本难以形成永久记忆。这次我复习和整理面试知识点的时候决定把CNN里面的关键创新点、容易疏忽的点都记录下来,方便快速查找回顾,于是就有了这篇像词典一样的永久更新的文章。 一.基础知识 1.1 BatchNorm/LayerNorm/InstanceNorm/GroupNorm 基础知识点 记忆点 备注 Batch Norm 达到
简历上万、985/211技术人才超60%!金融企业该如何打赢校招人才争夺战?
35分钟第一次面base杭州的公司,面试官居然跟我说2个hc,绷不住了[尴尬][尴尬]最有成就感的项目,遇到了什么问题,收获vue vs react,区别和共同。* } *//** * 代。23届的,双非的,
急
着找工作的,没经验的。本人分校区,由于东风本田只去我们本校区,所以我找了同学帮我投递简历,到晚上10点才通知,第二天早上8点就要面试。笔试测评恶心人面试恶心人等面试结果恶心人面试过了泡池子恶心人发意向被毁恶心人好容易走完所有流程了,临了到签三方的时候还要被恶心一下,三方填了信息想换公司了,还得。
GDAL学习总结
GDAL介绍 GDAL(Geospatial Data Abstraction Library)是
一个
在X/MIT许可协议下的开源栅格空间
数据
转换库。它利用抽象
数据
模
型
来表达所支持的各种文件格式。它还有一系列命令行工具来进行
数据
转换和处理。 OGR是GDAL项目的
一个
分支,功能与GDAL类似,只不过它提供对矢量
数据
的支持。 有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的A
delphi XE 10实现App和PC下TreeView调用ImageList和Sqlite
数据
delphi XE 10实现App和PC下TreeView调用ImageList和Sqlite
数据
一、工程 program TreeView; uses System.StartUpCopy, FMX.Forms, Unit1 in 'Unit1.pas' {Form1}, FrmTreeView in 'FrmTreeView.pas' {FrameTreeView: TFrame}, Unit2 in 'Unit2.pas' {Form2}, Main in 'Main.
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章