gpt4 book ai didi

Python 在 MySQL 数据库中插入值 <= 1e-7

转载 作者:行者123 更新时间:2023-11-29 05:23:17 25 4
gpt4 key购买 nike

我有一个 python (2.7) 函数,它对 double 值执行 MySQL 更新查询,当数字大于 1e-7 时一切正常,问题是如果数字等于或小于它更新字段0.

为了实际查看发生了什么,我在代码中添加了一些打印语句以输出 qry(执行的查询)和 value(要插入的值).

qry = 'UPDATE %s SET value_dbl = %f WHERE name = \'%s\' && board_id = %d' % \
(self._getValueTableName(idx), value, valueName, self.boardInfo[boardName])

print value
print qry

如果我使用值 1e-6,我的输出如下:

更新 temp_ctrl_1 SET value_dbl = 0.000001 WHERE name = 'pid_ki' && board_id = 99.99999974738e-06

如您所见,在本例中一切正常。但是,现在如果使用值 1e-7;

UPDATE temp_ctrl_1 SET value_dbl = 0.000000 WHERE name = 'pid_kp' && board_id = 9 9.99999997475e-07

构造查询字符串时,变量value四舍五入为零,如何更新一个值小于或等于1e-7的MySQL double 字段??

最佳答案

不要自己格式化字符串

  • 这会让您容易受到注入(inject)攻击
  • float 被格式化为字符串,导致你丢弃数据

相反,将字符串和对象列表作为两个单独的参数传递:

cursor.execute('UPDATE %s SET value_dbl = %f WHERE name = %s && board_id = %d',
[self._getValueTableName(idx), value, valueName, self.boardInfo[boardName]])

关于Python 在 MySQL 数据库中插入值 <= 1e-7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23115038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com