具有精度为2的十进制类型的列。但是在保存数据的同时,它只用一个精度就可以节省数值。

时间:2016-06-24 09:28:04

标签: postgresql decimal ruby-2.2

我正在使用Ruby 2.2.4和PostgreSQL。 我创建了迁移:

add_column :plans, :price, :decimal, precision: 7, scale: 2

当我要创建新记录时,它只会以一个精度在 price 列中保存价值。

为什么会这样? 我想要有2个精度的价值。

例: 保存的当前值:20.0 我想:20.00

2 个答案:

答案 0 :(得分:0)

WITH SPLIT("My house", " ") AS SWords
WITH SIZE(SWords) as msize, SWords
FOREACH(myize IN CASE WHEN msize = 1 THEN [1] ELSE [] END |
        MERGE (w2:Word{name: SWords[0]})
 )

FOREACH(myize IN CASE WHEN msize > 1 THEN [1] ELSE [] END |
        MERGE (w1:Word{name: SWords[1]})
 )

enter image description here

因此您可以在点

后使用select round(20.0 , 2), 20.00::double precision, 20.00::numeric 作为固定位数

答案 1 :(得分:0)

我使用过number_to_currency(@price)。它是ActionView :: Helpers :: NumberHelper

的一种方法