如何将来自gmlib的mpz_t存储在mongo数据库上? 我使用GMP库来管理C++代码中的大数。我还使用mongocxx客户端连接并查询mongodb数据库。如何在mongo数据库中存储mpz_t编号?或者更好的是,如何在mongodb中将mpz_t转换为NumeberLong?

如何将来自gmlib的mpz_t存储在mongo数据库上? 我使用GMP库来管理C++代码中的大数。我还使用mongocxx客户端连接并查询mongodb数据库。如何在mongo数据库中存储mpz_t编号?或者更好的是,如何在mongodb中将mpz_t转换为NumeberLong?,c++,c,mongodb,gmp,bignum,C++,C,Mongodb,Gmp,Bignum,这取决于您计划做什么。MongoDB没有任意精度的数字类型,因此您基本上有两个选项: 如果数字类型适合于64位整数,则可以使用函数 unsigned long valint = mpz_get_ui(val); // or long valint = mpz_get_si(val); 将数字转换为64位整数并存储在NumberLong数据类型中 否则,您始终可以将数字val转换为带有 char *valstr = mpz_get_str(NULL, 10, val); 并将其作为文本存储在数

这取决于您计划做什么。MongoDB没有任意精度的数字类型,因此您基本上有两个选项:

如果数字类型适合于64位整数,则可以使用函数

unsigned long valint = mpz_get_ui(val);
// or
long valint = mpz_get_si(val);
将数字转换为64位整数并存储在
NumberLong
数据类型中

否则,您始终可以将数字
val
转换为带有

char *valstr = mpz_get_str(NULL, 10, val);
并将其作为文本存储在数据库中。如果您只想存储号码,而不需要在数据库级别进行处理,那么这可能是最安全的解决方案