您当前的位置: 首页 >> 标签:c语言中sqrt取整
c 语言中 sqrt 取整 开方后整数处理详解

在 C 语言当中 sqrt 函数本身返回的是 double 类型浮点数,它只会计算平方根,不会自动取整,如果想要对 sqrt 的结果做取整,需要搭配取整相关函数或者强制类型转换,常用方式有强制转 int 向下截断,floor 向下取整,ceil 向上取整,round 四舍五入取整,不同取整方式适用场景不一样,很多初学者直接把 sqrt 结果强制转 int,以为就是标准取整,其实这种写法是截断小数部分,并不是四舍五入,而且还要特别注意 sqrt 浮点数存在精度误差,比如本来应该是整数平方根,计算出来变成 8.9999999,强制转 int 之后就变成 8,结果出错,这是 sqrt 取整最经典的坑点。之所以要单独学习 sqrt 取整,是因为很多算法题比如判断完全平方数,求整数开方,都需要拿到整数结果,必须理解浮点数精度带来的误差,选择合适的取整方案,同时所有取整函数都在 math.h 头文件里面,Linux gcc 编译的时候同样需要链接数学库 lm 参数。浏览全文>>