GMP最接近的整数

时间:2018-01-05 09:12:36

标签: c gmp

我在C中使用GMP,我想将mpf舍入到mpz最接近的整数。是否有GMP功能可以做到这一点?我的解决方法是:

void Mpf_round(mpz_t rop, const mpf_t op, int PRECISION){
    mpf_t dummy; mpf_init2(dummy,PRECISION);
    int compare_int;
    mpf_floor(dummy,op);
    mpf_sub(dummy,op,dummy);
    compare_int=mpf_cmp_d(dummy,0.5);
    mpf_floor(dummy,op);
    if(compare_int>0){
        mpf_add_ui(dummy,dummy,1);
        mpz_set_f(rop,dummy);
    }
    else
        mpz_set_f(rop,dummy);

    mpf_clear(dummy);
}

有更好的方法吗?我正在寻找快速的东西,因为我很多时候都在调用这个操作。

0 个答案:

没有答案