Go 和 Postgresql 中带有 gorm 的十进制类型

Decimal type in Go and Postgresql with gorm

所以我正在创建一个 API 并且我需要存储一些东西的价格。

我正在使用 gorm 和 gormigrate 进行数据库迁移。 我只是想知道我应该使用什么类型来存储小数。我在存储货币时不应该使用浮点数的地方变红了。

type MyStruct struct {
    Name        string `json:"name" gorm:"not null"`
    Description string `json:"description" gorm:"null"`
    Price <what type should be here> `json:"price"`
}

所以,根据@ain的建议,我使用了shopspring/decimal。但是当我自动迁移时它给我一个错误。

事实证明,我只需要使用 gorm 标签将类型设置为 numeric 即可:

type MyStruct struct {
    Name        string `json:"name" gorm:"not null"`
    Description string `json:"description" gorm:"null"`
    Price decimal.Decimal `json:"price" gorm:"type:numeric"`
}