coin

package
v3.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const MoneyScale = 8

========================================== 常量与基数 ==========================================

Variables

View Source
var (
	MoneyBase = new(big.Int).Exp(big.NewInt(10), big.NewInt(MoneyScale), nil) // 10^8

)

Functions

This section is empty.

Types

type Money added in v3.0.5

type Money struct {
	// contains filtered or unexported fields
}

========================================== Money 结构体 内部使用 big.Int 存储最小单位(固定 8 位小数) ==========================================

func FromInt

func FromInt(v *big.Int) Money

func FromInt64

func FromInt64(v int64) Money

func FromToken

func FromToken(token *big.Int, decimals uint8) Money

TokenAmount → Money decimals: ERC20 decimals

func MustParse added in v3.0.5

func MustParse(s string) Money

func One added in v3.0.5

func One() Money

func Parse added in v3.0.5

func Parse(s string) (Money, error)

func ParseMoney added in v3.0.5

func ParseMoney(s string) (Money, error)

ParseMoney 从字符串解析,例如 "123.45678901"

func Zero

func Zero() Money

========================================== 构造函数 ==========================================

func (Money) Abs added in v3.0.5

func (m Money) Abs() Money

func (Money) Add added in v3.0.5

func (m Money) Add(x Money) Money

========================================== 基础运算 ==========================================

func (Money) Cmp added in v3.0.5

func (m Money) Cmp(x Money) int

func (Money) Div added in v3.0.5

func (m Money) Div(x Money) Money

func (Money) DivInt added in v3.0.5

func (m Money) DivInt(n int64) Money

func (Money) DivIntExact added in v3.0.5

func (m Money) DivIntExact(n int64) (Money, error)

精确除法(必须整除)

func (Money) GormDBDataType added in v3.0.5

func (m Money) GormDBDataType(db *gorm.DB, field *schema.Field) string

========================================== GORM / SQL ==========================================

func (Money) GreaterThanOrEqual added in v3.0.5

func (m Money) GreaterThanOrEqual(o Money) bool

func (Money) Int added in v3.0.5

func (m Money) Int() *big.Int

func (Money) IsNegative added in v3.0.5

func (m Money) IsNegative() bool

func (Money) IsZero added in v3.0.5

func (m Money) IsZero() bool

func (Money) LessThanOrEqual added in v3.0.5

func (m Money) LessThanOrEqual(o Money) bool

func (Money) MarshalJSON added in v3.0.5

func (m Money) MarshalJSON() ([]byte, error)

========================================== JSON ==========================================

func (Money) Mul added in v3.0.5

func (m Money) Mul(x Money) Money

func (Money) MulInt added in v3.0.5

func (m Money) MulInt(n int64) Money

func (Money) MulRate added in v3.0.5

func (m Money) MulRate(rate *big.Int) Money

MulRate 基于 MoneyBase 的比例乘法 rate 是 *1e8 表示的小数(如 0.002 = 200000)

func (Money) MulRatio added in v3.0.5

func (m Money) MulRatio(numerator, denominator *big.Int) Money

MulRatio 向下截断的比例乘法 等价于:m * numerator / denominator

func (Money) MulRatioFloor added in v3.0.5

func (m Money) MulRatioFloor(
	numerator,
	denominator *big.Int,
) Money

MulRatioFloor 返回 floor(m * numerator / denominator)

func (*Money) Scan added in v3.0.5

func (m *Money) Scan(value any) error

func (Money) String added in v3.0.5

func (m Money) String() string

========================================== 输出 ==========================================

func (Money) Sub added in v3.0.5

func (m Money) Sub(x Money) Money

func (Money) ToToken added in v3.0.5

func (m Money) ToToken(decimals uint8) (*big.Int, error)

Money → TokenAmount

func (*Money) UnmarshalJSON added in v3.0.5

func (m *Money) UnmarshalJSON(data []byte) error

func (Money) Value added in v3.0.5

func (m Money) Value() (driver.Value, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL