gpt4 book ai didi

c - 小数点后N位C四舍五入

转载 作者:行者123 更新时间:2023-12-05 01:34:45 34 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




8年前关闭。




Possible Duplicate:
Rounding Number to 2 Decimal Places in C



我没有找到带有签名的函数 double round(double d, int digits)喜欢 here在 c.
当我尝试构建时,出现错误:

error: too many arguments to function 'round'



如何在小数点后用 N 位在 C 中舍入?

最佳答案

使用递归(对于某些数字值会很慢)

#include <math.h>
double my_round(double x, unsigned int digits) {
if (digits > 0) {
return my_round(x*10.0, digits-1)/10.0;
}
else {
return round(x);
}
}

一种可能会更快一些的方法,但它依赖于对慢速 pow 的单个调用功能:
#include <math.h>

double my_round(double x, unsigned int digits) {
double fac = pow(10, digits);
return round(x*fac)/fac;
}

一种更快的方法是预先计算具有可能幂的查找表并使用它而不是 pow .
#include <math.h>

double fac[]; // population of this is left as an exercise for the reader

double my_round(double x, unsigned int digits) {
return round(x*fac[digits])/fac[digits];
}

关于c - 小数点后N位C四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003487/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com