很抱歉问这个问题,但在累了之后我把它写在这里。
我无法将 Golang 的任何变量类型映射到 Cassandra 的 Decimal 类型,这是多精度的
我使用了接口(interface) {},只要我不为变量赋值,它就可以工作。我一这么做,就有问题了
最佳答案
您可以使用无限精度十进制包并直接导入此gopkg,
导入“gopkg.in/inf.v0”
假设您有一个特定的模型,它反射(reflect)或绑定(bind)到具有十进制数据类型的 Scylla/Cassandra 表,
type TradeModel struct {
Balance *inf.Dec
}
要将字符串强制转换为这种十进制数据类型,您可以使用以下函数:
func ToDecimal(s string) *inf.Dec {
d := new(inf.Dec)
res, _ := d.SetString(s)
return res
}
看看这些示例:https://github.com/go-inf/inf/blob/master/dec.go
注意:为了简单起见,我没有明确编写 SetString 返回值的第二个结果。无论转换是否成功,该参数都会返回一个 bool 值,这很重要(在我的例子中,这已经在直接助手中)。
关于Cassandra 十进制的 Golang 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53067051/