我正在使用GMP库在c ++代码中管理大数。我还使用mongocxx客户端连接并查询mongodb数据库。如何在mongo数据库中存储mpz_t号?甚至更好,如何将mpz_t转换为mongodb中的NumeberLong?
答案 0 :(得分:1)
这取决于您打算做什么。 MongoDB没有任意精度的数字类型,因此您实际上有两个选择:
如果数字类型适合 64位整数,则可以使用函数
unsigned long valint = mpz_get_ui(val);
// or
long valint = mpz_get_si(val);
将数字转换为64位整数并将其存储在NumberLong
数据类型中。
否则,您始终可以使用{p>将数字val
转换为字符串。
char *valstr = mpz_get_str(NULL, 10, val);
并将其作为文本存储在数据库中。如果您只想存储而不需要在数据库级别进行处理,这可能是最安全的解决方案。