如何提高浮点数变整数的精度
转载请注明出处:http://blog.csdn.net/qq_26093511/article/details/52884497
在我们的产品设计中,经常会遇到浮点数变整数的时候,那么,我们首先看看,浮点数变整数的精度如何?
1、分别定义一个浮点数26.6和26.4,把这个数强制转换成整数后,是多少?
按理说,或者说,我们希望的结果,应该是四舍五入的27和26,但是结果是程序只取了整数部分,小数部分根本没有给我们四舍五入。
2、用 modf 函数,提取浮点数的小数部分。
if 小数部分 < 0.5
对这个浮点数不做处理,直接取整;
else
这个浮点数加上 一或0.5后,再取整;
-------------------------------------------------------------------------------
函数名:modf
头文件:<math.h>
函数原型:double modf(double x, double *ipart)
函数用途:分解x,以得到x的整数和小数部分
输入参数:x
待分解的数输出参数:ipath x 的整数部分
返回值:x 的小数部分
3、直接使用 math.h 里的函数
ceil(x)返回不小于x的最小整数值(然后转换为double型)。
floor(x)返回不大于x的最大整数值。
round(x)返回x的四舍五入整数值。