大话西游666
我找到了答案有一个函数将 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 }}*为指数部分编辑