【算法】-002 小数四舍五入截断

【算法】-002 小数四舍五入截断

  实际应用中,由于采集设备的精度问题,虽然测量值在有效范围内,但可能数据尾部会处在一直跳变的过程中。为了将不稳定的数据位舍去,因此需要将测试数据进行带四舍五入的截断。

1、 实现

  将带小数的测试数据直接进行数据类型转换,使用C++编译器默认的截断规则进行小数截断。比如,要将1.123456保留5位小数,使用C++代码方法如下:

float DecimalTruncation(float a, int nCount)
{
    float d = 0;
    //先将数据放大10^nCount倍,将小数点右移nCount位,之后进行整数截断,为了确保四舍五入的进行,将放大后的数据+0.5,
    //截断之后再将结果缩小10^nCount倍,将小数点左移nCount位。
    d = (int(a * pow(10, nCount)+0.5)) / pow(10, nCount);
    return d;
}

猜你喜欢

转载自blog.csdn.net/freehawkzk/article/details/82115676
今日推荐