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 關注
- 191 瀏覽
添加回答
舉報