你好,我在列中有一些值,例如:8106.8499999999985
所以我想把它修成这样:8106.85
我尝试了以下操作
mysql_query("Update statements set Balance = '".round("Balance",2)."' where CHAR_LENGTH(Balance) > 8");
我想遵循相同的方式:更新语句 set Balance = Balance + 1 where...
任何解决方案
最佳答案
这应该可以解决问题:
UPDATE statements SET Balance = ROUND(Balance, 2);
不需要使用带连接的 PHP,只需按以下方式运行它:
mysql_query("UPDATE statements SET Balance = ROUND(Balance, 2)");
旁白 mysql_*
是不安全的。你应该使用 mysqli_*
。
假设您使用的是数字数据类型(不是 VARCHAR
),除非最后一位小数为零,否则四舍五入到 2 位小数:
UPDATE statements SET Balance = IF(RIGHT(ROUND(Balance, 2), 1) = 0, ROUND(Balance, 1), ROUND(Balance, 2));
如果您使用的是 VARCHAR
,请将 0
更改为 '0'
(然后使用 ALTER TABLE 修复数据类型
)。
这是 a demo .
关于Php mysql 更新为相同的记录值并使用 round 函数修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447105/