C++ 如何在cassandrac++;数据税

C++ 如何在cassandrac++;数据税,c++,cassandra,C++,Cassandra,我使用的是DataStax Cassandra驱动程序 我正在尝试以编程方式将行插入到cassandra表中。 如果表格为十进制类型,则为其中一列。我的问题是 在表格(id、价格)中插入值(?,) 我准备了cass_session_准备的报表,然后绑定 cass\u语句\u bind\u int32\u通过\u name id 当我尝试绑定decimal时,问题就开始了。该方法的原型是 CassError cass_statement_bind_decimal ( statement, in

我使用的是DataStax Cassandra驱动程序 我正在尝试以编程方式将行插入到cassandra表中。 如果表格为十进制类型,则为其中一列。我的问题是

在表格(id、价格)中插入值(?,)

我准备了cass_session_准备的报表,然后绑定 cass\u语句\u bind\u int32\u通过\u name id

当我尝试绑定decimal时,问题就开始了。该方法的原型是

  CassError cass_statement_bind_decimal ( statement, index, varint, varint_size, scale )
其中varint是指向字节的指针,varint_大小是字节数,scale是scale

最后,我的问题是如何计算我应该传递给方法的字节数组的内容? 首先,我天真地认为,如果我只传递一个数字的字符表示(“1234.56”),它就会工作。但我当然不工作。 现在我明白了我应该传递的字节数组在Java中被称为BigInteger。但我不知道如何将string或double转换为这个BigInteger数组。我不认为Cassandra驱动程序API提供了任何可以帮助我进行转换的东西。
因此,如果有人能帮助我解决这个问题,我将非常感激

有许多库可以用来执行转换:

如果您查看DataStax C/C++驱动程序的集成测试,您将发现一个利用该库的基本工具。此实现不执行算术运算,但允许您轻松地将字节数组(带刻度)转换为BigNumber以进行比较和显示


注意:众所周知,OpenSSL BIGNUM实现比许多其他库都慢。可以在使用GMP库的中找到更完整的实现。

谢谢你,费罗!你的回答很有用。我将尝试在代码中实现解决方案。不知何故,我忽略了DataStax集成测试中的相关片段。