egg
egg copied to clipboard
egg-mysql 执行update或者 insert 后,float类型字段精度不正确
What happens?
const params = {
id: 3,
plan_name: 'testAdd_upd999',
plan_no: '3452422424',
begin_date: '2019-12-15',
end_date: '2020-02-11',
amount: 23231.13
};
await this.app.mysql.update('plan', params)
使用egg-mysql 数据库, 上面执行后数据库 plan 表更新成功,但是 amount字段的value为:23231.1,精度不对,amount为float类型。 而通过在 navicat 客户端执行同样逻辑sql语句更新数据:
UPDATE plan SET plan_name = 'dd234422', amount=2342.33 WHERE id = 3 ;
amount字段精度正常,value为 23231.13
最小可复现仓库
请使用
npm init egg --type=simple bug
创建,并上传到你的 GitHub 仓库
复现步骤,错误日志以及相关配置
相关环境信息
- 操作系统: mac
- Node 版本: v10.16.2
- Egg 版本: 2.15.1
这是 JS 本身的精度问题
这是 JS 本身的精度问题 那sql 语句是正常的,egg-mysql 执行后不是应该和sql执行一样么?如何解决这种问题呢?
这是 JS 本身的精度问题 那sql 语句是正常的,egg-mysql 执行后不是应该和sql执行一样么?如何解决这种问题呢?
金额在mysql中分2个字段存放,一个存整数的值,一个存小数的值,前端使用.进行字符串切割
这是 JS 本身的精度问题 那sql 语句是正常的,egg-mysql 执行后不是应该和sql执行一样么?如何解决这种问题呢?
金额在mysql中分2个字段存放,一个存整数的值,一个存小数的值,前端使用.进行字符串切割
可以转成分来存,既能保证精度又可以计算金额准确