【发布时间】:2016-08-06 04:11:41
【问题描述】:
我不知道是 Ecto 还是 Elixir 的问题。当我在数据库中有一个数字,如 1000、15000 等时,Ecto 将其返回为 1.0e3、1.5e4 ... 如果我将 1000 更改为 1234,一切正常。
Elixir 1.3.2、Ecto 2.0.3、MySQL
迁移:
alter table(:incoming_transfers) do
add :fee, :float # Ecto translates it as DOUBLE in MySQL
end
架构:
schema "incoming_transfers" do
field :fee, :float
end
如果我将数据库类型 DOUBLE 手动更改为 FLOAT,问题仍然存在。但是如果我把它改成INTEGER就好了。
【问题讨论】:
-
您在迁移表和模型中的模式声明时为该列使用了什么类型?您能否在问题中包含这两个文件的相关 sn-ps?
-
@Dogbert 我更新了我的问题
-
所以-也许这是一个愚蠢的问题-为什么要将整数保留为浮点数?只需在架构中使用整数。
-
@PatNowak 这只是一个例子。当我第一次遇到这个问题时,我通过将 Float 转换为 Money 来解决这个问题,但现在我必须使用 Float。