Documentation
¶
Index ¶
- Constants
- Variables
- func GetDefaultOutputDecimals() int
- func SetDefaultOutputDecimals(decimals int)
- type Money
- func (m Money) Abs() Money
- func (m Money) Add(x Money) Money
- func (m Money) Cmp(x Money) int
- func (m Money) Div(x Money) Money
- func (m Money) DivInt(n int64) Money
- func (m Money) DivIntExact(n int64) (Money, error)
- func (m Money) FormatDecimals(decimals int) string
- func (m Money) GormDBDataType(db *gorm.DB, field *schema.Field) string
- func (m Money) Greater(x Money) bool
- func (m Money) GreaterThanOrEqual(o Money) bool
- func (m Money) Int() *big.Int
- func (m Money) IsNegative() bool
- func (m Money) IsZero() bool
- func (m Money) Less(x Money) bool
- func (m Money) LessThanOrEqual(o Money) bool
- func (m Money) MarshalJSON() ([]byte, error)
- func (m Money) MarshalJSONWithDecimals(decimals int) ([]byte, error)
- func (m Money) Mul(x Money) Money
- func (m Money) MulInt(n int64) Money
- func (m Money) MulRate(rate *big.Int) Money
- func (m Money) MulRatio(numerator, denominator *big.Int) Money
- func (m Money) MulRatioFloor(numerator, denominator *big.Int) Money
- func (m *Money) Scan(value any) error
- func (m Money) String() string
- func (m Money) StringFull() string
- func (m Money) Sub(x Money) Money
- func (m Money) ToToken(decimals uint8) (*big.Int, error)
- func (m *Money) UnmarshalJSON(data []byte) error
- func (m Money) Value() (driver.Value, error)
- type MoneyJSON
Constants ¶
const MoneyScale = 8
========================================== 常量与基数 ==========================================
Variables ¶
var (
MoneyBase = new(big.Int).Exp(big.NewInt(10), big.NewInt(MoneyScale), nil) // 10^8
)
Functions ¶
func GetDefaultOutputDecimals ¶ added in v3.0.7
func GetDefaultOutputDecimals() int
GetDefaultOutputDecimals 获取默认输出小数位数
func SetDefaultOutputDecimals ¶ added in v3.0.7
func SetDefaultOutputDecimals(decimals int)
SetDefaultOutputDecimals 设置默认输出小数位数 decimals: 0 表示输出所有小数位,1-8 表示保留指定位数
Types ¶
type Money ¶ added in v3.0.5
type Money struct {
// contains filtered or unexported fields
}
========================================== Money 结构体 内部使用 big.Int 存储最小单位(固定 8 位小数) ==========================================
func ParseMoney ¶ added in v3.0.5
ParseMoney 从字符串解析,例如 "123.45678901"
func Zero ¶
func Zero() Money
========================================== 构造函数 ==========================================
func (Money) Add ¶ added in v3.0.5
========================================== 基础运算 ==========================================
func (Money) Cmp ¶ added in v3.0.5
Cmp 比较 Cmp compares x and y and returns:
-1 if x < y;
0 if x == y;
+1 if x > y.
func (Money) FormatDecimals ¶ added in v3.0.7
FormatDecimals 按指定小数位格式化 decimals: 0 表示输出所有小数位,1-8 表示保留指定位数
func (Money) GormDBDataType ¶ added in v3.0.5
========================================== GORM / SQL ==========================================
func (Money) GreaterThanOrEqual ¶ added in v3.0.5
GreaterThanOrEqual 大于等于
func (Money) LessThanOrEqual ¶ added in v3.0.5
LessThanOrEqual 小于等于
func (Money) MarshalJSON ¶ added in v3.0.5
========================================== JSON ==========================================
func (Money) MarshalJSONWithDecimals ¶ added in v3.0.7
MarshalJSONWithDecimals 按指定小数位序列化
func (Money) MulRate ¶ added in v3.0.5
MulRate 基于 MoneyBase 的比例乘法 rate 是 *1e8 表示的小数(如 0.002 = 200000)
func (Money) MulRatioFloor ¶ added in v3.0.5
MulRatioFloor 返回 floor(m * numerator / denominator)
func (Money) String ¶ added in v3.0.5
========================================== 输出(支持小数位配置) ==========================================