在c++中,怎样表达四舍五入,,谢谢
4个回答
展开全部
指定精度的四舍五入(需要包含 math.h),参考代码如下:
double getRoundFloat(double dbVal, int nPrec /* = 2 */)
{
const double dbShift = pow(10.0, nPrec);
return floor(dbVal * dbShift + 0.5) / dbShift;
}
扩展资料:
C++参考函数:
int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0
int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返回非0值,否则返回0
int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0
memcmp比较正好是n字节长的两个字符串s1和s2.些函数按无符号字符比较字节,因此,memcmp("0xFF","/x7F",1)返回值大于0.
memicmp比较s1和s2的前n个字节,不管字符大写或小写.
参考资料来源:百度百科-C++
展开全部
很简单,比如 float a = 3.67;
表达 a 四舍五入为 b 就可以这样写: int b = (int)(a+0.5);
表达 a 四舍五入为 b 就可以这样写: int b = (int)(a+0.5);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
round() 返回与参数最接近的整数值。
round(2.6) = 3
round (2.4) = 2
round(2.5) = 3
round(-1.6) = -2
round(-1.5) = -1
floor() :返回不大于参数的最大整数。
floor(3.5) = 3
floor(-1.3) = -2
floor(4) = 4
round(2.6) = 3
round (2.4) = 2
round(2.5) = 3
round(-1.6) = -2
round(-1.5) = -1
floor() :返回不大于参数的最大整数。
floor(3.5) = 3
floor(-1.3) = -2
floor(4) = 4
追问
这个不是在word文档的吗,c++可以用吗////
追答
#include
#include
#include
#include
#define zend_isinf(a) ((_fpclass(a) == _FPCLASS_PINF) || (_fpclass(a) == _FPCLASS_NINF))
#define zend_isnan(x) _isnan(x)
static double round(double val, int places) {
double t;
double f = pow(10.0, (double) places);
double x = val * f;
if (zend_isinf(x) || zend_isnan(x)) {
return val;
}
if (x >= 0.0) {
t = ceil(x);
if ((t - x) > 0.50000000001) {
t -= 1.0;
}
} else {
t = ceil(-x);
if ((t + x) > 0.50000000001) {
t -= 1.0;
}
t = -t;
}
x = t / f;
return !zend_isnan(x) ? x : t;
}
int main( void )
{
float fl=3.14159;
float fb,fc,fd;
int i=0;
i=round(fl,0);
fb=round(fl,2);
fc=round(fl,1);
fd=round(fl,0);
printf("%d,\t%f,\t%f,\t%f,\t%f\n",i,fl,fb,fc,fd);
}
运行结果:3, 3.141590, 3.140000, 3.100000, 3.000000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
整数的话,可以判断来解决,
小数的话,不好说,因为小数的存储问题,不可能精确,所以不完全是四舍五入
小数的话,不好说,因为小数的存储问题,不可能精确,所以不完全是四舍五入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询