Golang gorm 插入一个始终带有 0 的 float64 值

问题描述 投票:0回答:1

我有一个 MariaDB 表字段,其数据类型为“double”且具有默认属性

CREATE TABLE
  `id` INT NOT NULL AUTO_INCREMENT,
  `date` DATE NOT NULL,
  `available_percentage` DOUBLE,
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

另一方面,我在程序中定义了一个结构体

type A struct {
    ID                    uint `gorm:"primaryKey"`
    AvailablePercentage   float64
    Date                  string `gorm:"primaryKey;index"`
}

当我尝试使用

向该表插入新记录时
&A{
        Date:                  "2024-10-09",
        AvailablePercentage:   float64(99.55),
}

我总是在该字段中得到值 0。 我尝试使用其他号码,例如100、99.55000 等没有什么不同。

有人可以告诉我的结构或我的 MariaDB 表字段定义有什么问题吗?

go mariadb go-gorm
1个回答
0
投票

使用 GORM,你可以像这样定义模型:

type A struct {
  gorm.Model            // ID, CreatedAt, UpdatedAt, DeletedAt
  Percentage float64    `json:"percentage" gorm:"type:decimal(10,2);"`
  Date       *time.Time `json:"date" gorm:"column:date"`
}
© www.soinside.com 2019 - 2024. All rights reserved.