很抱歉提出这个问题,但是累了之后在这里写。
我无法将Golang的任何变量类型映射为多精度的Cassandra的Decimal类型
我使用了{}接口,只要不将值放在变量中就可以使用。我做的那一刻有问题
答案 0 :(得分:5)
您可以使用无限精度十进制软件包并直接导入此gopkg,
import "gopkg.in/inf.v0"
假设您有一个特定的模型,该模型使用十进制数据类型来反映或绑定到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返回值中写入第二个结果。该参数将返回一个布尔值,表明转换是否成功,这很重要(在我的情况下,这已经在直接帮助程序中了。)
答案 1 :(得分:0)
https://github.com/gocql/gocql/blob/master/helpers.go
通过此链接,我发现inf.Dec类型的Golang映射到Cassandra的Decimal
var decimal inf.Dec
或
decimal := inf.NewDec(1, 0)