【发布时间】:2019-03-05 03:51:02
【问题描述】:
我创建了一个带有FLOAT 类型列的表。但是,我发现当我查询列的MAX、MIN、AVG 值时,我得到的数字不准确,其中返回的值大于表中实际存储的值。例如,这是表中的实际最大数:0.00348675。不知何故,MAX 返回:0.0034867459908127785
错误是由于选择了FLOAT 作为类型。为此,我想将列类型更改为DECIMAL.
我在 Ubuntu 18 中使用 mysql-workbench。当我右键单击表格并选择 Alter Table 时,我可以更改数据类型。不幸的是,当我将相关字段从FLOAT 更改为DECIMAL 时,FLOAT 会自动再次返回。工作台由于某种原因不能选择DECIMAL。看这张照片。我可以从列表中选择 DECIMAL。然后当我将鼠标移到别处点击下一个空行时,我可以点击Apply,DECIMAL 消失,FLOAT 再次返回:
【问题讨论】:
-
你希望你的小数有多大,有多少个小数字符?
-
列值是这个 python 3.6.5 函数的结果,称为:
time.process_time(),到目前为止我还没有看到它在规范中有多长。 -
刚刚发现,原文件中的值为:
0.003486746000000096。当我将它加载到FLOAT()类型的表中时,它变成了:0.00348675。然后当我查询 MAX 时,它返回为:0.0034867459908127785。这真的很令人困惑。我希望在从文件中加载它们时完全存储这些数字。我需要它们在加载的所有阶段都完好无损,以查询MAX。
标签: mysql database decimal mysql-workbench alter