打印
[技术相关]

四舍五入的实现方法有几种你知道吗?

[复制链接]
682|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
double round_number(double x) {
    return (x >= 0.0) ? floor(x + 0.5) : ceil(x - 0.5);
}
double round_number(double x) {
    if (x >= 0.0) {
        return floor(x + 0.5);
    } else {
        return ceil(x - 0.5);
    }
}
嘿嘿,其实这两种都是一种。
那么如何指定小数位你知道吗?
double round_number(double x, int decimal_places) {
    double multiplier = pow(10, decimal_places);
    if (x >= 0.0) {
        return floor(x * multiplier + 0.5) / multiplier;
    } else {
        return ceil(x * multiplier - 0.5) / multiplier;
    }
}
这么写如何?符合要求不

使用特权

评论回复
沙发
pixhw| | 2023-5-7 10:37 | 只看该作者
如果小数部分小于0.5.则返回整数部分.double强制转换int会去掉小数位

使用特权

评论回复
板凳
updownq| | 2023-5-7 13:56 | 只看该作者
有一个很巧妙的方法,仅使用int i=(int)(a+0.5)即可。

使用特权

评论回复
地板
cashrwood| | 2023-5-7 15:09 | 只看该作者
C语言中如何对浮点数进行四舍五入?

使用特权

评论回复
5
xiaoyaodz| | 2023-5-7 15:30 | 只看该作者
直接加0.5后取整 将原数加上0.5之后再向下取整即可

使用特权

评论回复
6
maudlu| | 2023-5-7 15:51 | 只看该作者
可以通过将原数加上0.5后转换为浮点数,并直接截取整数部分得到四舍五入的结果。

使用特权

评论回复
7
yeates333| | 2023-5-7 16:43 | 只看该作者
如何用c语言实现整数的四舍五入计算结果?

使用特权

评论回复
8
benjaminka| | 2023-5-7 16:48 | 只看该作者
浮点数有着固定的舍入规则。              

使用特权

评论回复
9
pixhw| | 2023-5-7 17:18 | 只看该作者
先将原数除以一个指定的精度,然后再将结果乘以该精度,最后将结果向下取整即可。

使用特权

评论回复
10
olivem55arlowe| | 2023-5-7 17:38 | 只看该作者
具体方法的选择可以根据实际需求和系统资源等因素进行综合考虑。

使用特权

评论回复
11
wengh2016| | 2023-5-7 18:32 | 只看该作者
要用C语言实现四舍五入?              

使用特权

评论回复
12
maqianqu| | 2023-5-7 19:15 | 只看该作者
在C语言中,可以使用标准库函数round()来进行四舍五入操作。该函数会根据小数点后第一位的数值判断是否进位,如果是,则对整数部分加1,否则不变。

使用特权

评论回复
13
tpgf| | 2023-5-9 12:18 | 只看该作者
楼主的这三种方法都比较常规  思路其实都差不多

使用特权

评论回复
14
qcliu| | 2023-5-9 14:37 | 只看该作者
如果想要使用标准库函数round()的话 需要引用哪个头文件呢

使用特权

评论回复
15
drer| | 2023-5-9 17:09 | 只看该作者
qcliu 发表于 2023-5-9 14:37
如果想要使用标准库函数round()的话 需要引用哪个头文件呢

应该是math。h这个头文件 但是单片机c里边的这个头文件是不是没有这个函数啊

使用特权

评论回复
16
coshi| | 2023-5-9 17:18 | 只看该作者
maqianqu 发表于 2023-5-7 19:15
在C语言中,可以使用标准库函数round()来进行四舍五入操作。该函数会根据小数点后第一位的数值判断是否进位 ...

round函数是EXCEL中的一个基本函数,作用按指定的位数对数值进行四舍五入

使用特权

评论回复
17
kxsi| | 2023-5-10 10:29 | 只看该作者
四舍五入的话  感觉它的计算方法和需要得到的精度是有关系的

使用特权

评论回复
18
wiba| | 2023-5-10 12:07 | 只看该作者
yeates333 发表于 2023-5-7 16:43
如何用c语言实现整数的四舍五入计算结果?

整数为什么还需要四舍五入呢 难道是十位以上的?

使用特权

评论回复
19
理想阳| | 2023-8-10 09:29 | 只看该作者
直接加0、5后的整数,将原来的数加0、5后,四舍五入后再取下来即可

使用特权

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

本版积分规则

173

主题

3358

帖子

13

粉丝