打印
[嵌入式linux]

关于一个float类型数据问题

[复制链接]
1188|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
xyz549040622| | 2017-5-5 23:04 | 只看该作者
由float的有效位数决定,有效数字是7位。你可以sprintf函数强制取四位数字。也可以乘以10000取整然后除以10000.

使用特权

评论回复
板凳
光阴时钟|  楼主 | 2017-5-7 12:54 | 只看该作者
xyz549040622 发表于 2017-5-5 23:04
由float的有效位数决定,有效数字是7位。你可以sprintf函数强制取四位数字。也可以乘以10000取整然后除以10 ...

sprintf不行吧?这不是把他数据转成字符串吗

使用特权

评论回复
地板
xyz549040622| | 2017-5-7 18:49 | 只看该作者
光阴时钟 发表于 2017-5-7 12:54
sprintf不行吧?这不是把他数据转成字符串吗

对,转成字符串,减去0x30不就是数字了吗

使用特权

评论回复
5
linqing171| | 2017-5-7 20:01 | 只看该作者
乘以10000,加上0.5,转换成整数。在c#中有decimal,是x*10^y,而不是这种x*2^y。

使用特权

评论回复
6
linqing171| | 2017-5-7 20:02 | 只看该作者
round和floor函数也可以,math.h 里面有一些函数。

使用特权

评论回复
7
舔茶嘛光| | 2019-12-16 15:03 | 只看该作者
xyz549040622 发表于 2017-5-5 23:04
由float的有效位数决定,有效数字是7位。你可以sprintf函数强制取四位数字。也可以乘以10000取整然后除以10 ...

没用。乘以1000,除以1000,又变成9位数,它会强行补全

使用特权

评论回复
8
ayb_ice| | 2019-12-17 14:03 | 只看该作者
先减掉整数部分,然后*1000,取整

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

31

帖子

0

粉丝