硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1365|回复: 3
收起左侧

有点绕的负数四舍五入后取整?

[复制链接]

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 2020-3-31 10:44:09 | 显示全部楼层 |阅读模式
输入:单精度浮点数
过程:小数位四舍五入

输出:16位有符号整数

有兴趣可以尝试下?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2020-3-31 10:47:54 | 显示全部楼层
这个问题,之前还专门发过两个讨论帖:

DSP库中浮点数转定点时四舍五入的处理思路,如果是正数加0.5,负数减0.5
http://www.armbbs.cn/forum.php?mod=viewthread&tid=95149

浮点数的四舍五入C库函数round,roundf,roundl等使用说明
http://www.armbbs.cn/forum.php?mod=viewthread&tid=95156
回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
 楼主| 发表于 2020-3-31 11:04:52 | 显示全部楼层
eric2013 发表于 2020-3-31 10:47
这个问题,之前还专门发过两个讨论帖:

DSP库中浮点数转定点时四舍五入的处理思路,如果是正数加0.5,负 ...

两个方式,其中后者正负兼容:

  1. float value = -1.5;
  2. short inter = (short)(value - 0.5);
  3. inter = (short)(65536 + value + 0.5);
复制代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2020-3-31 11:36:05 | 显示全部楼层
emwin 发表于 2020-3-31 11:04
两个方式,其中后者正负兼容:

也是个好办法,不过前提得知道要转换的类型。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 10:21 , Processed in 0.226346 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表