2 回答
TA贡献1817条经验 获得超14个赞
我找到了答案
有一个函数将 Decimal128 转换为 BigInt。
和 BigInt 可供比较
func CompareDecimal128(d1, d2 primitive.Decimal128) (int, error) {
b1, exp1, err := d1.BigInt()
if err != nil {
return 0, err
}
b2, exp2, err := d2.BigInt()
if err != nil {
return 0, err
}
sign := b1.Sign()
if sign != b2.Sign() {
if b1.Sign() > 0 {
return 1, nil
} else {
return -1, nil
}
}
if exp1 == exp2 {
return b1.Cmp(b2), nil
}
if sign < 0 {
if exp1 < exp2 {
return 1, nil
}
return -1, nil
} else {
if exp1 < exp2 {
return -1, nil
}
return 1, nil
}
}
*为指数部分编辑
- 2 回答
- 0 关注
- 154 浏览
添加回答
举报