mysql - 将 48.00 值保存为 MySQL 数据类型,将其保存为 48

标签 mysql sql floating-point

这可能是一个简单的解决方案,但在过去几个小时运行此查询时让我很头疼

insert into payment set id ='13914', amount ='48.00', discount ='0.00',
     total ='48.00', fees ='2', charges ='', staus ='2'

48.00 在 db 列中保存为 48。 db 列类型为 double。

最佳答案

您的数据已正确存储。使用 DOUBLE 时为 48 == 48.00。

当您检索数据时尝试

SELECT ROUND(amount,2) amount,
       ROUND(discount, 2) discount
  FROM payment

如果您真的必须看到数字末尾的 .00

请,,为了专业和您 future 的用户的利益,学习 float 是如何工作的。

关于mysql - 将 48.00 值保存为 MySQL 数据类型,将其保存为 48,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35069750/

相关文章:

javascript - 转换 float 并保留小数位

c# - 我什么时候会遇到C#中Double类型的问题(比特币的小数点后8位)?

php - 将 2 个 SQL 表连接成 1 个数据数组

mysql - 如何向 mySQL 中已存在的表添加约束?

MySQL - 如何修改列默认值?

java - SQL 语法异常 - 无效字符,但查询工作正常

mysql - 我在哪里可以下载 mysql jdbc jar?

php - 数据表 |如何做自己的选择?

mysql - MySQL CREATE TABLE 语句的外键错误(err : 150)

python - struct.unpack(struct.pack(float)) 有舍入误差?