Go和Postgresql中的十进制类型与gorm

时间:2018-06-16 14:49:10

标签: database postgresql go go-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"`
}

1 个答案:

答案 0 :(得分:3)

所以,根据@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"`
}