Php 如何更新MySQL column=列号
我有以下几个专栏:Php 如何更新MySQL column=列号,php,sql,Php,Sql,我有以下几个专栏: points_on | points_off 0 1.36 此SQL命令: UPDATE table SET points_off = points_off-{$cash}, points_on = points_on+{$cash} WHERE ... $cash=“1.36” 如果我运行此操作,则表更新错误,如下所示: points_on | points_off 1.36 0.0000000143051 如何正确更新 我
points_on | points_off
0 1.36
此SQL命令:
UPDATE table SET points_off = points_off-{$cash}, points_on = points_on+{$cash} WHERE ...
$cash=“1.36”
如果我运行此操作,则表更新错误,如下所示:
points_on | points_off
1.36 0.0000000143051
如何正确更新
我需要将“$cash数字从“积分关闭”移动到“积分打开” 我相信这源于PHP如何在内部表示数字。据我所知,PHP将数字存储为浮点小数,这可能会生成像您这样的奇怪输出
declare @cash float
set @cash=1.36
update [dbo].[stkkk] set [pts_on]=[pts_on]+@cash
update [dbo].[stkkk] set [pts_off]=[pts_off]-@cash
我建议阅读以下StackOverflow文章:
不确定它是否能100%工作,但您可能希望尝试实现一些代码,以确保计算精确到小数点后两位,而不是让PHP来决定。参考文章可能会有所帮助。我相信这源于PHP如何在内部表示数字。据我所知,PHP将数字存储为浮点小数,这可能会生成像您这样的奇怪输出 我建议阅读以下StackOverflow文章:
不确定它是否能100%工作,但您可能希望尝试实现一些代码,以确保计算精确到小数点后两位,而不是让PHP来决定。参考文章可能会有所帮助。我相信这源于PHP如何在内部表示数字。据我所知,PHP将数字存储为浮点小数,这可能会生成像您这样的奇怪输出 我建议阅读以下StackOverflow文章:
不确定它是否能100%工作,但您可能希望尝试实现一些代码,以确保计算精确到小数点后两位,而不是让PHP来决定。参考文章可能会有所帮助。我相信这源于PHP如何在内部表示数字。据我所知,PHP将数字存储为浮点小数,这可能会生成像您这样的奇怪输出 我建议阅读以下StackOverflow文章:
不确定它是否能100%工作,但您可能希望尝试实现一些代码,以确保计算精确到小数点后两位,而不是让PHP来决定。参考文章可能会有所帮助。是MySQL字段类型
float
还是double
根据,问题在于float
值是近似存储的
您应该使用decimal
,定义为decimal(M,D)
,其中M
是数字中的最大位数(例如,对于0.00到9.99,M=3
),而D
是点后的位数(例如,对于0.00到9.99,D=2
)
我执行了与您尝试过的相同的操作,遇到了相同的问题,并用十进制
修复了它
请注意,
decimal
字段需要比float
多得多的存储空间,MySQL字段类型是float
还是double
根据,问题在于float
值是近似存储的
您应该使用decimal
,定义为decimal(M,D)
,其中M
是数字中的最大位数(例如,对于0.00到9.99,M=3
),而D
是点后的位数(例如,对于0.00到9.99,D=2
)
我执行了与您尝试过的相同的操作,遇到了相同的问题,并用十进制
修复了它
请注意,
decimal
字段需要比float
多得多的存储空间,MySQL字段类型是float
还是double
根据,问题在于float
值是近似存储的
您应该使用decimal
,定义为decimal(M,D)
,其中M
是数字中的最大位数(例如,对于0.00到9.99,M=3
),而D
是点后的位数(例如,对于0.00到9.99,D=2
)
我执行了与您尝试过的相同的操作,遇到了相同的问题,并用十进制
修复了它
请注意,
decimal
字段需要比float
多得多的存储空间,MySQL字段类型是float
还是double
根据,问题在于float
值是近似存储的
您应该使用decimal
,定义为decimal(M,D)
,其中M
是数字中的最大位数(例如,对于0.00到9.99,M=3
),而D
是点后的位数(例如,对于0.00到9.99,D=2
)
我执行了与您尝试过的相同的操作,遇到了相同的问题,并用十进制
修复了它
请注意,
decimal
字段需要比float
多得多的存储空间,为什么在更新points\u off
列时,points\u on
列值会发生变化。这很奇怪O.osorry,我更新了SQL命令。。第二,为什么在更新points\u off
列时,points\u on
列的值会发生变化。这很奇怪O.osorry,我更新了SQL命令。。第二,为什么在更新points\u off
列时,points\u on
列的值会发生变化。这很奇怪O.osorry,我更新了SQL命令。。第二,为什么在更新points\u off
列时,points\u on
列的值会发生变化。这很奇怪O.osorry,我更新了SQL命令。。第二,我是业余爱好者,这是SQL命令吗<代码>mysql\u查询(“声明…”)?嗯..不,这是来自sql server!!我是业余爱好者,这是SQL命令吗<代码>mysql\u查询(“声明…”)?嗯..不,这是来自sql server!