Sa1*_*m0n 3 mysql orm node.js typeorm nestjs
我正在为我的 Nest.js 后端应用程序使用 TypeORM。当我尝试将实体保存在数据库中时:
await this.dayRepository.save({
price: item.price,
... other columns
});
Run Code Online (Sandbox Code Playgroud)
我的价格是浮动的,该浮动作为整数保存在数据库中 - 总是被截断(3.99 舍入到 3,5.56 舍入到 5 等)。我什至尝试这个:
await this.dayRepository.save({
price: 3.99,
... other columns
});
Run Code Online (Sandbox Code Playgroud)
它还将数据库中的价格列保存为 3。我尝试将数据库中的价格列声明为 float 和 double - 这些都不起作用。我做错了什么?或者可能是数据库有问题?
根据TypeORM 文档,您可以检查mysql.
因此,您可以在实体中声明如下所示的值:
@Column('decimal', { precision: 6, scale: 2 })
price: number
Run Code Online (Sandbox Code Playgroud)
其中precision和scale是您选择的数字,但我认为您希望scale为 2。
你可以检查这个文档
小数(精确数字)列的精度(仅适用于小数列),它是为值存储的最大位数。
小数(精确数字)列的小数位数(仅适用于小数列),表示小数点右侧的位数,且不得大于精度。
通过此实体配置,您可以存储带小数的值。